结论:在数据标准化之后,欧式距离、Pearson相关系数、Cosine相似度可认为是等价的。(https://www.zhihu.com/question/19734616/answer/349132554)
作用:m维空间中两个点之间的真是距离,或者向量的自然长度
两个n维向量x与y间的欧式距离:
D = ∑ k = 1 n ( x i − y i ) 2 D=\sqrt{\sum_{k=1}^n{(xi-yi)^2}} D=k=1∑n(xi−yi)2
向量运算形式:
D = ( a − b ) ( a − b ) T D=\sqrt{(a-b)(a-b)^T} D=(a−b)(a−b)T
作用:度量两个变量之间的相关程度,最终结果介于-1到1之间。其结果为两个变量之间的协方差与标准差的商。
在欧式距离中,无法考虑不同变量之间的取值差异,例如:变量a范围01,而变量b取值范围01000,计算欧式距离时变量上的微小差异会产生较大的影响。Pearson可以看作升级版的欧式距离,对不同变量取值范围不同进行了处理步骤,对取值范围没有要求。
首先引入协方差的表示,两个集合X,Y之间的协方差计算公式为:
C O V ( X , Y ) = 1 n − 1 ( ∑ i = 1 n ( X i − X ‾ ) ( Y i − Y ‾ ) ) COV(X,Y) = \frac{1}{n-1}(\sum_{i=1}^n(X{i}-\overline{X})(Y{i}-\overline{Y})) COV(X,Y)=n−11(i=1∑n(Xi−X)(Yi−Y))
协方差的意义:如果结果为正值(当 X i X{i} Xi大于(小于) X ‾ \overline{X} X并且 Y i Y{i} Yi大于(小于) Y ‾ \overline{Y} Y),则说明X和Y是正相关,如果为负则说明负相关,如果为0则说明两者之间没有关联,相互独立。
公式一:
C O R ( X , Y ) = c o v ( X , Y ) σ X σ Y = ∑ i = 1 n ( X i − X ‾ ) ( Y i − Y ‾ ) ∑ i = 1 n ( X i − X ‾ ) 2 ∑ i = 1 n ( Y i − Y ‾ ) 2 COR(X,Y) = \frac{cov(X,Y)}{\sigma_X\sigma_Y} =\frac{\sum_{i=1}^n(X{i}-\overline{X})(Y{i}-\overline{Y})}{\sqrt{\sum_{i=1}^n(X{i}-\overline{X})^2\sum_{i=1}^n(Y{i}-\overline{Y})^2}} COR(X,Y)=σXσYcov(X,Y)=∑i=1n(Xi−X)2∑i=1n(Yi−Y)2∑i=1n(Xi−X)(Yi−Y)
公式二:
C O R ( X , Y ) = c o v ( X , Y ) σ X σ Y = E ( X Y ) − E ( X ) E ( Y ) E ( X 2 ) − E 2 ( X ) E ( Y 2 ) − E 2 ( Y ) COR(X,Y) = \frac{cov(X,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)}} COR(X,Y)=σXσYcov(X,Y)=E(X2)−E2(X)E(Y2)−E2(Y)E(XY)−E(X)E(Y)
公式中的E为期望,在离散数据中等价于均值, σ X \sigma_X σX为X的标准差。
σ X = E ( X 2 ) − E 2 ( X ) = ∑ i = 1 n ( X i − X ‾ ) 2 \sigma_X=\sqrt{E(X^2)-E^2(X)}=\sqrt{\sum_{i=1}^n(X{i}-\overline{X})^2} σX=E(X2)−E2(X)=∑i=1n(Xi−X)2
用于计算文档数据的相似度。
二维向量中,向量 a = ( x 1 , y 1 ) a=(x_{1},y_{1}) a=(x1,y1)和向量 b = ( x 2 , y 2 ) b=(x_{2},y_{2}) b=(x2,y2)的夹角余弦值计算如下:
c o s ( Θ ) = a ⃗ ⋅ b ⃗ ∣ a ∣ ∗ ∣ b ∣ = x 1 x 2 + y 1 y 2 x 1 2 + y 1 2 ∗ x 2 2 + y 2 2 cos(Θ)=\frac{\vec{a}\cdot\vec{b}}{|a|*|b|}=\frac{x_{1}x_{2}+y_{1}y_{2}}{\sqrt{x_1^2+y_1^2}*\sqrt{x_2^2+y_2^2}} cos(Θ)=∣a∣∗∣b∣a⋅b=x12+y12∗x22+y22x1x2+y1y2
如果是n维向量,上述公式仍成立:
c o s ( Θ ) = X ⋅ Y ∣ ∣ X ∣ ∣ ∗ ∣ ∣ Y ∣ ∣ = ∑ i = 1 n ( x i ∗ y i ) ∑ i = 1 n ( x i ) 2 ∑ i = 1 n ( y i ) 2 = X T ⋅ Y ∣ ∣ X ∣ ∣ ∗ ∣ ∣ Y ∣ ∣ cos(Θ)=\frac{X\cdot Y}{||X||*||Y||}=\frac{\sum_{i=1}^n(x_i*y_i)}{\sqrt{\sum_{i=1}^n(x_i)^2}\sqrt{\sum_{i=1}^n(y_i)^2}}=\frac{X^T·Y}{||X||*||Y||} cos(Θ)=∣∣X∣∣∗∣∣Y∣∣X⋅Y=∑i=1n(xi)2∑i=1n(yi)2∑i=1n(xi∗yi)=∣∣X∣∣∗∣∣Y∣∣XT⋅Y
余弦值越接近1,表明夹角越接近0,两个向量越相似。
如果,只有正反馈而没有具体值的情况,公式为:
w u v = ∣ N ( u ) ∩ N ( v ) ∣ ∣ N ( u ) ∣ ∣ N ( v ) ∣ w_{uv}=\frac{|N(u)\cap N(v)|}{|N(u)||N(v)|} wuv=∣N(u)∣∣N(v)∣∣N(u)∩N(v)∣
是Cosine相似度的扩展,广泛应用于计算文档数据的相似度。
T ( 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 − ∑ i = 0 n x i y i T(x,y)=\frac{\vec{x}\cdot\vec{y}}{|x|*|y|}=\frac{\sum_{i=1}^n(x_i*y_i)}{\sqrt{\sum_{i=1}^n(x_i)^2}\sqrt{\sum_{i=1}^n(y_i)^2}-\sum_{i=0}^nx_iy_i} T(x,y)=∣x∣∗∣y∣x⋅y=∑i=1n(xi)2∑i=1n(yi)2−∑i=0nxiyi∑i=1n(xi∗yi)
两个特征向量A, B,如果其值都是0,1的二值数据,那么就有一个简单的判定相似性的方法,即Jaccard系数
M11表示A和B对应位都是1的属性的数量
M10表示A中为1,B中对应位为0的总数量
M01表示A中为0,B中对应位为1的总数量
M00表示对应位都为0的总数量
J ( A , B ) = ∣ A ∩ B ∣ ∣ A ∪ B ∣ = M 11 M 00 + M 01 + M 10 + M 11 J(A,B)=\frac{|A∩B|}{|A ∪B|}=\frac{M11}{M00+M01+M10+M11} J(A,B)=∣A∪B∣∣A∩B∣=M00+M01+M10+M11M11