如何理解皮尔逊相关系数分析

皮尔逊相关系数评价算法(集体智慧编程) - 知知为知知 - ITeye技术网站
博客分类:
皮尔逊相关系数是比欧几里德距离更加复杂的可以判断人们兴趣的相似度的一种方法。该相关系数是判断两组数据与某一直线拟合程序的一种试题。它在数据不是很规范的时候,会倾向于给出更好的结果。
如图,Mick Lasalle为&&Superman&&评了3分,而Gene Seyour则评了5分,所以该影片被定位中图中的(3,5)处。在图中还可以看到一条直线。其绘制原则是尽可能地靠近图上的所有坐标点,被称为最佳拟合线。如果两位评论者对所有影片的评分情况都相同,那么这条直线将成为对角线,并且会与图上所有的坐标点都相交,从而得到一个结果为1的理想相关度评价。
假设有两个变量X、Y,那么两变量间的皮尔逊相关系数可通过以下公式计算:
皮尔逊相关系数计算公式
皮尔逊相关系数计算公式
皮尔逊相关系数计算公式
皮尔逊相关系数计算公式
以上列出的四个公式等价,其中E是数学期望,cov表示协方差,N表示变量取值的个数。
皮尔逊相关度评价算法首先会找出两位评论者都曾评论过的物品,然后计算两者的评分总和与平方和,并求得评分的乘积之各。利用上面的公式四计算出皮尔逊相关系数。
critics = {'Lisa Rose': {'Lady in the Water': 2.5, 'Snakes on a Plane': 3.5,
'Just My Luck': 3.0, 'Superman Returns': 3.5, 'You, Me and Dupree': 2.5,
'The Night Listener': 3.0},
'Gene Seymour': {'Lady in the Water': 3.0, 'Snakes on a Plane': 3.5,
'Just My Luck': 1.5, 'Superman Returns': 5.0, 'The Night Listener': 3.0,
'You, Me and Dupree': 3.5},
'Michael Phillips': {'Lady in the Water': 2.5, 'Snakes on a Plane': 3.0,
'Superman Returns': 3.5, 'The Night Listener': 4.0},
'Claudia Puig': {'Snakes on a Plane': 3.5, 'Just My Luck': 3.0,
'The Night Listener': 4.5, 'Superman Returns': 4.0,
'You, Me and Dupree': 2.5},
'Mick LaSalle': {'Lady in the Water': 3.0, 'Snakes on a Plane': 4.0,
'Just My Luck': 2.0, 'Superman Returns': 3.0, 'The Night Listener': 3.0,
'You, Me and Dupree': 2.0},
'Jack Matthews': {'Lady in the Water': 3.0, 'Snakes on a Plane': 4.0,
'The Night Listener': 3.0, 'Superman Returns': 5.0, 'You, Me and Dupree': 3.5},
'Toby': {'Snakes on a Plane': 4.5, 'You, Me and Dupree': 1.0, 'Superman Returns': 4.0}}
from math import sqrt
def sim_pearson(prefs, p1, p2):
# Get the list of mutually rated items
for item in prefs[p1]:
if item in prefs[p2]:
si[item] = 1
# if they are no ratings in common, return 0
if len(si) == 0:
# Sum calculations
n = len(si)
# Sums of all the preferences
sum1 = sum([prefs[p1][it] for it in si])
sum2 = sum([prefs[p2][it] for it in si])
# Sums of the squares
sum1Sq = sum([pow(prefs[p1][it], 2) for it in si])
sum2Sq = sum([pow(prefs[p2][it], 2) for it in si])
# Sum of the products
pSum = sum([prefs[p1][it] * prefs[p2][it] for it in si])
# Calculate r (Pearson score)
num = pSum - (sum1 * sum2 / n)
den = sqrt((sum1Sq - pow(sum1, 2) / n) * (sum2Sq - pow(sum2, 2) / n))
if den == 0:
r = num / den
print(sim_pearson(critics,'Lisa Rose','Gene Seymour'))
注:还有许多方法可以衡量两组数据间的相似程度,使用哪一种方法最优,完全取决于具体的应用。
浏览 18230
home198979
浏览: 789772 次
来自: 深圳
浏览量:50784
浏览量:28904
浏览量:42979
[size=x-small][/size]
q 写道还是佩服写c的用其它语言一样可以实现 ...
还是佩服写c的
不错啊,强
浏览器安全模式下应当禁止标签中的有注释的,大小写混用标识符 非 ...87466人阅读
MATLAB(6)
统计相关系数简介
由于使用的统计相关系数比较频繁,所以这里就利用几篇文章简单介绍一下这些系数。
相关系数:考察两个事物(在数据里我们称之为变量)之间的相关程度。
如果有两个变量:X、Y,最终计算出的相关系数的含义可以有如下理解:
(1)、当相关系数为0时,X和Y两变量无关系。
(2)、当X的值增大(减小),Y值增大(减小),两个变量为正相关,相关系数在0.00与1.00之间。
(3)、当X的值增大(减小),Y值减小(增大),两个变量为负相关,相关系数在-1.00与0.00之间。
相关系数的绝对值越大,相关性越强,相关系数越接近于1或-1,相关度越强,相关系数越接近于0,相关度越弱。
通常情况下通过以下取值范围判断变量的相关强度:相关系数&&&& 0.8-1.0&&&&&极强相关&&&&&&&&&&&&&&&& 0.6-0.8&&&& 强相关&&&&&&&&&&&&&&&& 0.4-0.6&&&& 中等程度相关&&&&&&&&&&&&&&&& 0.2-0.4&&&& 弱相关&&&&&&&&&&&&&&&& 0.0-0.2&&&& 极弱相关或无相关
Pearson(皮尔逊)相关系数
皮尔逊相关也称为积差相关(或积矩相关)是英国统计学家皮尔逊于20世纪提出的一种计算直线相关的方法。
假设有两个变量X、Y,那么两变量间的皮尔逊相关系数可通过以下公式计算:
以上列出的四个公式等价,其中E是数学期望,cov表示协方差,N表示变量取值的个数。
2、适用范围
当两个变量的标准差都不为零时,相关系数才有定义,皮尔逊相关系数适用于:
(1)、两个变量之间是线性关系,都是连续数据。
(2)、两个变量的总体是正态分布,或接近正态的单峰分布。
(3)、两个变量的观测值是成对的,每对观测值之间相互独立。
3、Matlab实现
皮尔逊相关系数的Matlab实现(依据公式四实现):
function coeff = myPearson(X , Y)
% 本函数实现了皮尔逊相关系数的计算操作
X:输入的数值序列
Y:输入的数值序列
coeff:两个输入数值序列X,Y的相关系数
if length(X) ~= length(Y)
error('两个数值数列的维数不相等');
fenzi = sum(X .* Y) - (sum(X) * sum(Y)) / length(X);
fenmu = sqrt((sum(X .^2) - sum(X)^2 / length(X)) * (sum(Y .^2) - sum(Y)^2 / length(X)));
coeff = fenzi /
end %函数myPearson结束
也可以使用Matlab中已有的函数计算皮尔逊相关系数:
coeff = corr(X , Y);
4、参考内容
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:278111次
积分:1648
积分:1648
排名:千里之外
原创:11篇
评论:47条
(1)(1)(2)(2)(3)(1)(1)pearson 相关性系数
描述两个或两个以上变量间关系密切程度的统计方法。变量间关系的密切程度常以一个数量性指标描述,这个指标称相关系数,是社会学中较为普遍采用的一种资料分析的方法。根据变量的层次和数目,相关分析可作如下的分类。  定距变量以上的相关& 根据相关的准则,以直线为准,称作直线相关;以非直线为准,称作非直线相关。无论是直线相关或非直线相关,都可以进一步根据变量数目来分类。  简单直线相关& 讨论两定距变量间线性相关的程度与方向。例如,父辈受教育年限与子辈受教育年限之间的关系。简单直线相关系数r,又称皮尔逊相关系数或积矩相关系数。式中x、y为两相关变量,它们的测量值都是成对的:(x1,y1),(x2,y2),&&,(xn,yn)。相关系数r 的性质有:①相关系数的取值范围为-1&r&+1;②r为正值时,两变量间为正相关(图a);
③r为负值时,两变量间为负相关(图b);
④相关系数的绝对值│r│愈大,两变量间相关程度愈密切。r=+1,为完全正相关(图c);
r=-1,为完全负相关(图d);
r=0,两变量完全无关(图e)。
  复相关& 研究一个变量 x0与另一组变量 (x1,x2,&,xn)之间的相关程度。例如,职业声望同时受到一系列因素(收入、文化、权力&&)的影响,那么这一系列因素的总和与职业声望之间的关系,就是复相关。复相关系数R0.12&n的测定,可先求出 x0对一组变量x1,x2,&,xn的回归直线,再计算x0与用回归直线估计值憫之间的简单直线回归。复相关系数为
R0.12&n的取值范围为0&R0.12&n&1。复相关系数值愈大,变量间的关系愈密切。  偏相关& 研究在多变量的情况下,当控制其他变量影响后,两个变量间的直线相关程度。又称净相关或部分相关。例如,偏相关系数 r13.2表示控制变量x2的影响之后,变量 x1和变量x3之间的直线相关。偏相关系数较简单直线相关系数更能真实反映两变量间的联系。  偏相关系数、复相关系数、简单直线相关系数之间存在着一定的关系。以3个变量x1,x2,x3为例,它们有如下的关系:或&&  定序变量的相关& 讨论两个定序变量间的相关的程度与方向。又称等级相关。例如,研究夫妇双方文化程度的相关等。等级相关系数有R系数和γ系数。  R系数& 计算方法与简单直线相关系数相同。式中X,Y分别为x,y的测量值的等级。  英国统计学家 C.E.斯皮尔曼从R系数中推导出简捷式,称斯皮尔曼等级相关系数:式中di=xi-yi,i=1,2,&,N(N为次数)。  等级相关系数 R具有与简单直线相关相同的性质:取值范围在〔-1,+1〕之间;R的绝对值愈大,变量间的等级相关程度愈大。  γ系数& 适用于资料次数N 很大的情况。式中Ns为同序对数目,Nd为异序对数目。  同序对表示两个个案(xi,yi)和(xj,yj)相比时,具有xi>xj,则yi>yj的性质;反之,若xi>xj,但yi<yj,则称作一个异序对。  γ系数的取值范围在〔-1,+1〕之间。γ的绝对值愈大,变量间的等级相关程度愈大。  定类变量的相关& 研究两个定类变量间的相关程度。又称品质相关。例如,性别与宗教信仰,民族与宗教信仰等。为了研究定类变量间的相关,先将资料按两种变量进行交叉分类,设x共分c类,y共分r类,得r&c频次分配表。
分享这篇日志的人也喜欢
今天聊会天就练背吧
来了来了求关注关注阿
新人求守护
第五天,求破两万!很认真那种
放假快乐啊?
又开启了发疯模式了!!嘻嘻嘻
热门日志推荐
人人最热标签
北京千橡网景科技发展有限公司:
文网文[号··京公网安备号·甲测资字
文化部监督电子邮箱:wlwh@··
文明办网文明上网举报电话: 举报邮箱:&&&&&&&&&&&&
请输入手机号,完成注册
请输入验证码
密码必须由6-20个字符组成
下载人人客户端
品评校花校草,体验校园广场随笔 - 222&
文章 - 41&
trackbacks - 0
262728293031123456789101112131415161718192021222324252627282930123456
留言簿(11)
随笔分类(159)
随笔档案(222)
文章分类(2)
文章档案(4)
经典c++博客
阅读排行榜
评论排行榜
皮尔逊公式
在很多推荐算法的地方,涉及到了很多关于数学的公式,如果简单的应用这些公式,那当然较为的简单,当如果有真正的理解这些公式里面隐含着的道理那就要下一定的苦功夫。
我们这里不从皮尔逊的公式讲起,我们从物物的推荐开始。
这里以音乐的推荐为例子,对于音乐的推荐很多人都在做,比较好解释清楚。给你一首歌曲让你推荐10首相识的歌曲。推荐的数据来源是这样子的。每个人都会通过搜索歌曲来听他们自己喜欢的歌曲。这样歌曲就能有一些相关的特性了,关于数据的问题我们等下再进一步的说明。
如果我们不按数学的方法来思考这个问题的话,平常的人我们会怎样来解决这个问题呢?我们是这样想的,某一首音乐,他会存在不同的用户中,如果这些用户也存在着某些歌曲,我们就可以计算这首歌曲中在不同的用户中还存在了多少歌曲,这些歌曲的个数是多少,就可以有一个排序,这就是我们要的相识歌曲。
我们简单的用数学来描述一下:
假设有两个人甲,乙,三首歌曲A B C,如果甲有这首歌就标记为1,没有的话就标记为零
按照我们的算法
在甲用户中
Dict[A][B]=1,Dict[A][C]=1
乙用户没有A
这样歌曲A和B、C都相识,而且相识度都一样为1。眨眼看上去这种算法,很完美,非常的完美,因为平时我们聊起推荐系统的时候,时不时的一开口就让你这样做了。真的无懈可击了当然不是这样,让我们再看一次数据,你会发现,其实A,C&&& 的数据是一样一样的,理论上我们会觉得A,跟C的相识度是最高的,但是他的相识度却和B一样,这开起来是不合理的,但这是为什么呢。
回想一下如果进一步的假设,用1来标记喜欢,用0来标记不喜欢的话,我们这一种算法其实是没有考虑不喜欢这个因素的。很多人都认为不能这样假设,我告诉你,其实这是数据的问题,如果我们把使用的数据能够满足这里的假设,完全是可以采用的。
这里我想说的是,我并不认为我们使用的第一个算法,有多大的问题,只是想说的是,这种算法还不完美,还可以有改进的空间,这不就是我们一直所拥有的理念,把事情改变的更好。
进一步的再说:如果我们的数据不仅是1和0呢,用户对歌曲有打分了,怎么办呢?
当然很多人会说,算法也可以哦,字典里的数据跟着变Dict[A][B]=3,Dict[A][C]=3,但是有个问题不知道有没有注意到,每个人对打分的理解是不一样的,有的人觉得3分就是很好听的歌曲,而有的人要觉得4分才是很好听的歌曲,也就是说,每个人打分的标准不一样,导致了打出的分数和比人比较的时候是不一样的,但自己的标准大部分的时间是不会变的。
皮尔逊公式
这里我们需要一种算法。能够概括这些情况的。这就是皮尔逊公式。
皮尔逊算法过于复杂,如果要有点理解的话,可以使用把维数降到二维,这样就跟余弦定理有点相识了,相识度就是两条直线的夹角,角度为0的时候,皮尔逊的值为1,就是最相识的,如果角度为180度,代表两个牛马不相干,皮尔逊的值为-1。
很多时候,以前牛逼的数学家已经给了我们很多很好用的数学公式,只是如果没有真正去用过的话,我们并不知道他所涉及的原理。好好的研究数学公式,他会给给我们的算法带来一定的优化作用。关于公式的优化比较难了,以前的数学家给了我们很多的想法,而能够优化的就是我们的数据,如何取数据,这里主要的是,那个数据离用户的行为越近,离你使用的数学模型越近,那个数据就越好用。
http://zh.wikipedia.org/wiki/%E7%9A%AE%E5%B0%94%E9%80%8A%E7%A7%AF%E7%9F%A9%E7%9B%B8%E5%85%B3%E7%B3%BB%E6%95%B0
阅读(2301)
&re: 你应该知道的推荐算法--皮尔逊公式介绍和意义& 14:21&
鄂尔泰没看够&&&&&&您的位置: &
相关系数含义的理解
优质期刊推荐}

我要回帖

更多关于 皮尔逊积差相关系数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信