皮尔逊相关系数和余弦相似性的关系

有两篇回答,我觉得都是正确的,从不同的方向来看的。

作者:陈小龙
链接:https://www.zhihu.com/question/19734616/answer/174098489
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

先说结论: 皮尔逊相关系数是余弦相似度在维度值缺失情况下的一种改进, 皮尔逊相关系数是余弦相似度在维度值缺失情况下的一种改进, 皮尔逊相关系数是余弦相似度在维度值缺失情况下的一种改进.

楼主如果高中正常毕业, 参加过高考, 那么肯定会这么一个公式

cos<a, b> = a ? b / |a|?|b|

假设a = (3, 1, 0), b = (2, -1, 2)

分子是a, b两个向量的内积, (3, 1, 0) ? (2, -1, 2) = 3?2 + 1?(-1) + 0?2 = 5

分母是两个向量模(模指的是向量的长度)的乘积.

总之这个cos的计算不要太简单...高考一向这是送分题...

然后问题来了, 皮尔逊系数和这个cos啥关系...(不好意思借用了我们学校老师的课件...)

皮尔森相关系数计算公式

其实皮尔逊系数就是cos计算之前两个向量都先进行中心化(centered)...就这么简单...

中心化的意思是说, 对每个向量, 我先计算所有元素的平均值avg, 然后向量中每个维度的值都减去这个avg, 得到的这个向量叫做被中心化的向量. 机器学习, 数据挖掘要计算向量余弦相似度的时候, 由于向量经常在某个维度上有数据的缺失, 预处理阶段都要对所有维度的数值进行中心化处理.

我们观察皮尔逊系数的公式:

分子部分: 每个向量的每个数字要先减掉向量各个数字的平均值, 这就是在中心化.

分母部分: 两个根号式子就是在做取模运算, 里面的所有的 r 也要减掉平均值, 其实也就是在做中心化.

note: 我其实是今天上推荐系统课, 讲相似性计算的时候才发现原来余弦计算和皮尔逊相关系数计算就是一个东西两个名字啊......气死我了...高中的时候我还是靠背公式解题的...逃....

================2017-11-15更新: 对余弦相似度和皮尔森相关系数的进一步认识================

余弦距离(余弦相似度), 计算的是两个向量在空间中的夹角大小, 值域为[-1, 1]: 1代表夹角为0°, 完全重叠/完全相似; -1代表夹角为180°, 完全相反方向/毫不相似.

余弦相似度的问题是: 其计算严格要求"两个向量必须所有维度上都有数值", 比如:

v1 = (1, 2, 4),

v2=(3, -1, null),

那么这两个向量由于v2中第三个维度有null, 无法进行计算.

然而, 实际我们做数据挖掘的过程中, 向量在某个维度的值常常是缺失的, 比如v2=(3, -1, null), v2数据采集或者保存中缺少一个维度的信息, 只有两个维度. 那么, 我们一个很朴素的想法就是, 我们在这个地方填充一个值, 不就满足了"两个向量必须所有维度上都有数值"的严格要求了吗? 填充值的时候, 我们一般这个向量已有数据的平均值, 所以v2填充后变成v2=(3, -1, 2), 接下来我们就可以计算cos<v1, v2>了.

而皮尔逊相关系数的思路是, 我把这些null的维度都填上0, 然后让所有其他维度减去这个向量各维度的平均值, 这样的操作叫作中心化. 中心化之后所有维度的平均值就是0了, 也满足进行余弦计算的要求. 然后再进行我们的余弦计算得到结果. 这样先中心化再余弦计得到的相关系数叫作皮尔逊相关系数.

所以, 从本质上, 皮尔逊相关系数是余弦相似度在维度值缺失情况下的一种改进.

另外, 以movielens数据集计算两个用户之间相似度的协同过滤场景来说, 余弦相似度和皮尔逊相关系数所表现的都是在两个用户都有打分记录的那些特征维度下, 他们超过自身打分平均值的幅度是否接近. 如果各维度下的超出幅度都类似, 那么就是比较相似的.

另一篇回答,是从协方差的方面来看的。

作者:TimXP
链接:https://www.zhihu.com/question/19734616/answer/117730676
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

要理解Pearson相关系数,首先要理解协方差(Covariance),协方差是一个反映两个随机变量相关程度的指标,如果一个变量跟随着另一个变量同时变大或者变小,那么这两个变量的协方差就是正值,反之相反,公式如下:

Pearson相关系数公式如下:

由公式可知,Pearson相关系数是用协方差除以两个变量的标准差得到的,虽然协方差能反映两个随机变量的相关程度(协方差大于0的时候表示两者正相关,小于0的时候表示两者负相关),但是协方差值的大小并不能很好地度量两个随机变量的关联程度,例如,现在二维空间中分布着一些数据,我们想知道数据点坐标X轴和Y轴的相关程度,如果X与Y的相关程度较小但是数据分布的比较离散,这样会导致求出的协方差值较大,用这个值来度量相关程度是不合理的,如下图:

为了更好的度量两个随机变量的相关程度,引入了Pearson相关系数,其在协方差的基础上除以了两个随机变量的标准差,容易得出,pearson是一个介于-1和1之间的值,当两个变量的线性关系增强时,相关系数趋于1或-1;当一个变量增大,另一个变量也增大时,表明它们之间是正相关的,相关系数大于0;如果一个变量增大,另一个变量却减小,表明它们之间是负相关的,相关系数小于0;如果相关系数等于0,表明它们之间不存在线性相关关系。《数据挖掘导论》给出了一个很好的图来说明:

原文地址:https://www.cnblogs.com/charlesblc/p/8336765.html

时间: 2024-11-06 15:45:47

皮尔逊相关系数和余弦相似性的关系的相关文章

皮尔逊相关系数(Pearson Collelation coefficient)与余弦相似性的关系

皮尔逊相关系数 维基百科定义:两个变量之间的皮尔逊相关系数定义为两个变量之间的协方差和标准差的商 余弦相似性 皮尔逊相关系数与余弦相似性的关系 皮尔逊相关系数就是减去平均值(中心化)后做余弦相似性

皮尔逊相关系数与余弦相似度(Pearson Correlation Coefficient &amp; Cosine Similarity)

之前<皮尔逊相关系数(Pearson Correlation Coefficient, Pearson's r)>一文介绍了皮尔逊相关系数.那么,皮尔逊相关系数(Pearson Correlation Coefficient)和余弦相似度(Cosine Similarity)之间有什么关联呢? 首先,我们来看一下什么是余弦相似度.说到余弦相似度,就要用到余弦定理(Law of Cosine). 假设两个向量和之间的夹角为.,向量的长度分别是和,对应的边长为向量减去向量的长度,也就是. 根据余弦

[转] TF-IDF与余弦相似性的应用(一):自动提取关键词

原文链接:http://www.ruanyifeng.com/blog/2013/03/tf-idf.html 这个标题看上去好像很复杂,其实我要谈的是一个很简单的问题. 有一篇很长的文章,我要用计算机提取它的关键词(Automatic Keyphrase extraction),完全不加以人工干预,请问怎样才能正确做到? 这个问题涉及到数据挖掘.文本处理.信息检索等很多计算机前沿领域,但是出乎意料的是,有一个非常简单的经典算法,可以给出令人相当满意的结果.它简单到都不需要高等数学,普通人只用1

TF-IDF与余弦相似性的应用(一):自动提取关键词

这个标题看上去好像很复杂,其实我要谈的是一个很简单的问题. 有一篇很长的文章,我要用计算机提取它的关键词(Automatic Keyphrase extraction),完全不加以人工干预,请问怎样才能正确做到? 这个问题涉及到数据挖掘.文本处理.信息检索等很多计算机前沿领域,但是出乎意料的是,有一个非常简单的经典算法,可以给出令人相当满意的结果.它简单到都不需要高等数学,普通人只用10分钟就可以理解,这就是我今天想要介绍的TF-IDF算法. 让我们从一个实例开始讲起.假定现在有一篇长文<中国的

皮尔逊相关系数的java实现

相关系数的值介于–1与+1之间,即–1≤r≤+1.其性质如下:当r>0时,表示两变量正相关,r<0时,两变量为负相关.当|r|=1时,表示两变量为完全线性相关,即为函数关系.当r=0时,表示两变量间无线性相关关系.当0<|r|<1时,表示两变量存在一定程度的线性相关.?且|r|越接近1,两变量间线性关系越密切:?|r|越接近于0,表示两变量的线性相关越弱.一般可按三级划分:|r|<0.4为低度线性相关:?0.4≤|r|<0.7为显著性相关:0.7≤|r|<1为高度

机器学习笔记——皮尔逊相关系数

在学到相关性度量的时候,有一个系数用来度量相似性(距离),这个系数叫做皮尔逊系数,事实上在统计学的时候就已经学过了,仅仅是当时不知道还能用到机器学习中来,这更加让我认为机器学习离不开统计学了. 皮尔逊相关系数--Pearson correlation coefficient,用于度量两个变量之间的相关性,其值介于-1与1之间,值越大则说明相关性越强. 两个变量之间的皮尔逊相关系数定义为两个变量之间的协方差和标准差的商: 因为μX = E(X), σX2 = E[(X ? E(X))2] = E(

皮尔逊相关系数理解

皮尔逊相关系数理解有两个角度 其一, 按照高中数学水平来理解, 它很简单, 可以看做将两组数据首先做Z分数处理之后, 然后两组数据的乘积和除以样本数 Z分数一般代表正态分布中, 数据偏离中心点的距离.等于变量减掉平均数再除以标准差.(就是高考的标准分类似的处理) 标准差则等于变量减掉平均数的平方和,再除以样本数,最后再开方. 所以, 根据这个最朴素的理解,我们可以将公式依次精简为: 其二, 按照大学的线性数学水平来理解, 它比较复杂一点,可以看做是两组数据的向量夹角的余弦. 皮尔逊相关的约束条件

皮尔逊相关系数(Pearson Correlation Coefficient, Pearson&#39;s r)

Pearson's r,称为皮尔逊相关系数(Pearson correlation coefficient),用来反映两个随机变量之间的线性相关程度. 用于总体(population)时记作ρ (rho)(population correlation coefficient): 给定两个随机变量X,Y,ρ的公式为:  其中:   是协方差 是X的标准差 是Y的标准差 用于样本(sample)时记作r(sample correlation coefficient): 给定两个随机变量x,y,r的公

皮尔逊相关系数及其MATLAB实现

皮尔逊相关系数及其MATLAB实现   一.参考链接 1.http://blog.csdn.net/wsywl/article/details/5727327 2.http://www.cnblogs.com/zhangchaoyang/articles/2631907.html 3.http://blog.sciencenet.cn/blog-479412-641317.html 二.初稿时间 2020年1月13日 三.皮尔逊相关系数 1. 什么是相关系数?为什么会有相关系数? 相关系数是用以