常用相似度计算公式

常用相似度计算公式

协同过滤算法中最重要的部分是要计算物品间的相似度,对于不同的场景,可以应用不同的相似度计算公式来计算相似度,常用的相似度计算公式如下所示:

同现相似度(Co Occurrence)

同现相似度公式

w ( x , y ) = ∣ N ( x ) ∩ N ( y ) ∣ ∣ N ( x ) ∣ w(x,y)=\frac{|N(x)\cap{N(y)}|}{|N(x)|} w(x,y)=N(x)N(x)N(y)

公式中分母是喜欢物品x的用户数,而分子则是同时对物品x和物品y感兴趣的用户数。因此,上述公式可用理解为对物品x感兴趣的用户有多大概率也对y感兴趣 (和关联规则类似)

但上述的公式存在一个问题,如果物品y是热门物品,有很多人都喜欢,则会导致W(x, y)很大,接近于1。因此会造成任何物品都和热门物品交有很大的相似度。为此我们用如下公式进行修正:

改进的同现相似度公式

w ( x , y ) = ∣ N ( x ) ∩ N ( y ) ∣ ∣ N ( x ) ∣ ∣ N ( y ) ∣ w(x,y)=\frac{|N(x)\cap{N(y)}|}{\sqrt{|N(x)||N(y)|}} w(x,y)=N(x)∣∣N(y) N(x)N(y)

这个格式惩罚了物品y的权重,因此减轻了热门物品和很多物品相似的可能性。(也归一化了)

欧几里得相似度(Eucledian Similarity)

欧几里得相似度根据欧几里得距离计算而来,距离越近相似度越高,反之相反。

欧几里得距离公式

  d X , Y = ∑ i = 1 n ( x i − y i ) 2 \ d_{X,Y}=\sqrt{ \sum_{i=1}^n(x_i-y_i)^2}  dX,Y=i=1n(xiyi)2

皮尔逊相似度

皮尔逊相关系数,即概率论中的相关系数,取值范围[-1,+1]。当大于零时,两个变量正相关,当小于零时表示两个向量负相关。

皮尔逊积矩相关系数公式

ρ X , Y = c o v ( X , Y ) σ x σ y = E ( ( X − μ x ) ( Y − μ y ) ) σ x σ y = E ( X Y ) − E ( X ) E ( Y ) E ( X 2 ) − E 2 ( X ) E ( Y 2 ) − E 2 ( Y ) \rho_{X,Y}=\frac{cov(X,Y)}{\sigma_{x}\sigma_{y}}=\frac{E((X-\mu_x)(Y-\mu_y))}{\sigma_{x}\sigma_{y}}=\frac{E(XY)-E(X)E(Y)}{\sqrt{E(X^2)-E^2(X)}\sqrt{E(Y^2)-E^2(Y)}} ρX,Y=σxσycov(X,Y)=σxσyE((Xμx)(Yμy))=E(X2)E2(X) E(Y2)E2(Y) E(XY)E(X)E(Y)

余弦相似度(Cosine Similarity)

利用多维空间两点与所设定的点形成夹角的余弦值范围为[-1,1],值越大,说明夹角越大,两点相距就越远,相似度就越小。

余弦计算公式

s i m X , Y = X Y ∣ ∣ X ∣ ∣ ∣ ∣ Y ∣ ∣ = ∑ i = 1 n ( x i y i ) ∑ i = 1 n ( x i ) 2 ∗ ∑ i = 1 n ( y i ) 2 sim_{X,Y}=\frac{XY}{||X||||Y||}=\frac{ \sum_{i=1}^n(x_iy_i)}{\sqrt{\sum_{i=1}^n(x_i)^2}*\sqrt{\sum_{i=1}^n(y_i)^2}} simX,Y=∣∣X∣∣∣∣Y∣∣XY=i=1n(xi)2 i=1n(yi)2 i=1n(xiyi)

Tanimoto 相似度(Jaccard 系数)

Tanimoto相似度也称为Jaccard系数,是Cosine相似度扩展,多用于文档相似度就算。此相似度不考虑评价值,只考虑两个集合共同个体数量。

Jaccard 系数公式

s i m ( x , y ) = X ∩ Y ∣ ∣ X ∣ ∣ + ∣ ∣ Y ∣ ∣ − ∣ ∣ X ∩ Y ∣ ∣ sim(x,y)=\frac{X\cap{Y}}{||X||+||Y||-||X\cap{Y}||} sim(x,y)=∣∣X∣∣+∣∣Y∣∣∣∣XY∣∣XY

  • 13
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值