完全相关集的Pearson相关性失败

时间:2016-07-24 03:02:50

标签: recommendation-engine collaborative-filtering pearson-correlation

考虑以下用户A和B对胶片评级集的Pearson相关系数的例子:

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

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

我最初认为这是我实施中的一个问题,但我已经对一些在线计算器进行了验证。

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

2 个答案:

答案 0 :(得分:4)

人物相关性测量两个数据集之间的关联,即它们如何一起增加或减少。 在视觉方面,如果在x轴上绘制一组,在y轴上绘制另一组,它们有多接近直线。 无关数据集规模差异的正相关示例:

enter image description here

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

enter image description here

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

  • 非零标准差可以通过改变集合的单个值来实现,只需要较小的数量,并且由于数据集高度相关,它将为您提供高相关系数。

    < / LI>

enter image description here

我建议您研究其他相似度量,如欧几里德距离,余弦相似度,调整后的余弦相似度,并根据您的用例更多地做出明智的决定。它也可能是一种混合方法。

tool用于生成图表。

答案 1 :(得分:0)

Pearson相关除以变量的标准偏差,在您的情况下为零,因此导致除以零的误差。它被认为是好的,因为没有实际数据集的标准偏差为零。换句话说,完整的统一数据集不属于Pearson相关系数的域,但是没有理由不使用它。

相关问题