Pearson相关性在完全相关的集合中失败

考虑用户A和B对电影评级集合的皮尔森相关系数的以下例子:

A = [2,4,4,4,4]
B = [5,4,4,4,4]
pearson(A,B) = -1

A = [5,5,5,5,5]
B = [5,5,5,5,5]
pearson(A,B) = NaN

皮尔逊相关似乎被广泛用于计算协作过滤中两组之间的相似性。 然而,上面的集合显示出高(甚至是完美)的相似性,但是输出表明集合是负相关的(或者由于div除零而遇到错误)。

我最初认为这是我执行中的一个问题,但我已经通过一些在线计算器验证了它。

如果输出是正确的,为什么Pearson相关性被认为是该应用的一个好选择?


人际关系度量两个数据集之间的关联,即它们如何一起增加或减少。 从视觉角度来看,如果一组画在x轴上,另一组画在y轴上,它们在一条直线上有多接近。 正相关的例子,不管数据集规模的不同:

在这里输入图像描述

对于您的情况,数据集完全相似,因此它们的标准偏差为零,这是皮尔逊相关计算中用于分母的产品的一部分,因此它是未定义的。 这意味着,无法预测相关性,即数据如何随其他数据一起增加或减少。 在下图中,所有数据点位于一个点上,因此预测相关模式是不可能的。

在这里输入图像描述

  • 一个非常简单的解决方案就是单独处理这些情况,或者如果你想通过相同的流程,一个简单的方法就是确保任何集合的标准偏差不为零。

  • 非零标准偏差可以通过改变一个单一的数值来实现,数量很少,而且由于数据集高度相关,它会给你高相关系数。

  • 在这里输入图像描述

    我建议你研究其他的相似度量,比如欧几里得距离,余弦相似度,调整后的余弦相似度,以及更适合你的用例的知情决策。 这也可能是一种混合方法。

    这个工具被用来生成图表。


    皮尔逊相关性除以变量的标准偏差,在您的情况下,它是零,因此导致除以零误差。 这被认为是好的,因为没有真实数据集的标准偏差为零。 换句话说,完全一致的数据集在Pearson相关系数的范围之外,但没有理由不使用它。

    链接地址: http://www.djcxy.com/p/35457.html

    上一篇: Pearson correlation fails for perfectly correlated sets

    下一篇: ES6 declaring variables before or in loop