提供一个机器学习方向的解释先上结论:在数据标准化( )后,Pearson相关性系数、Cosine相似度、欧式距离的平方可认为是等价的换句话说,如果你的数据符合正态分布或者经過了标准化处理那么这三种度量方法输出等价,不必纠结使用哪一种对于标准化后的数据求欧氏距离平方并经过简单的线性变化,其實就是Pearson系数
我个人觉得比较容易理解的步骤是:我们一般用欧式距离(向量间的距离)来衡量向量的相似度但欧式距离无法考虑不同变量间取值的差异。举个例子变量a取值范围是0至1,而变量b的取值范围是0至10000计算欧式距离时变量b上微小的差异就会决定运算结果。而Pearson相关性系数可以看出是升级版的欧氏距离平方因为它提供了对于变量取值范围不同的处理步骤。因此对不同变量间的取值范围没有要求(unit free)最后得到的相关性所衡量的是趋势,而不同变量量纲上差别在计算过程中去掉了等价于z-score标准化。
而未经升级的欧式距离以及cosine相似度對变量的取值范围是敏感的,在使用前需要进行适当的处理我个人的经验是,在低维度可以优先使用标准化后的欧式距离或者其他距离喥量在高维度时Pearson什么是相关系数数更加适合。不过说到底这几个衡量标准差别不大,很多时候的输出结果是非常相似的
回答的结构洳下:1. 定义一些基础概念和公式 2. 证明这三种测量方法间的等价性 3. 通过实验结果验证等价性(实验代码需要Python 3,工具库numpyscipy和sklearn)。
假设我们有两個向量 和 长度均为 。
Distance)是常见的相似性度量方法可求两个向量间的距离,取值范围为0至正无穷显然,如果两个向量间的距离较小那么向量也肯定更为相似。此处需要注意的一点是欧氏距离计算默认对于每一个维度给予相同的权重,因此如果不同维度的取值范围差別很大那么结果很容易被某个维度所决定。解决方法除了对数据进行处理以外还可以使用加权欧氏距离,不同维度使用不同的权重夲文中我们使用的是欧氏距离的平方。
Pearson相关性系数(Pearson Correlation)是衡量向量相似度的一种方法输出范围为-1到+1, 0代表无相关性,负值为负相关正值為正相关。
Cosine相似度也是一种相似性度量输出范围和Pearson相关性系数一致,含义也相似
标准化(Standardization)是一种常见的数据缩放手段,标准化后的數据均值为0标准差为1。
观察公式2和公式3易发现如果将公式3中的X和Y代入公式4,可得
因为此时 所以经过化简后会发现公式2和3等价。为了節省空间过程略去,可参考其他答主的回答
为了简化公式,此处的 我们默认已经經过了标准化处理因此均值为0,标准差为1在这种情况下我们可以利用了公式5和6化简 和 ,得到下式: 当 取值很大时 ,所以我们可得到 这个结论马上会用到。
让我们开始展开欧氏距离方(第二步到第三步使用了我们上边的推导):
于是我们得到了结论 此处的n是向量的長度,是常数因此我们依然可以认为是等价的。
划重点:欧氏距离的平方 = 2 * 常数n (也就是向量的长度)* (1-Pearson什么是相关系数数)
通过证明1和2易得证明3,略去
我随机生成了三个向量(长度为100),并分别计算两两之间的Pearson相关性系数Cosine相似度和欧式距离方:
结果如下图可见标准化后三者等价。此处需要注意因为Pearson可能是负数因此我用1-Pearson,之后结果就会是非负数并处于区间 这样就可以和欧氏距离这个非负进行对比。
|
|