Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4584048
  • 博文数量: 1214
  • 博客积分: 13195
  • 博客等级: 上将
  • 技术积分: 9105
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-19 14:41
个人简介

C++,python,热爱算法和机器学习

文章分类

全部博文(1214)

文章存档

2021年(13)

2020年(49)

2019年(14)

2018年(27)

2017年(69)

2016年(100)

2015年(106)

2014年(240)

2013年(5)

2012年(193)

2011年(155)

2010年(93)

2009年(62)

2008年(51)

2007年(37)

分类: IT业界

2014-01-21 22:53:39

文章来源:http://my.oschina.net/mazhiyuan/blog/144762

Pearson 相关系数介绍

pearson是一个介于-1和1之间的值,用来描述两组线性的数据一同变化移动的趋势

当两个变量的线性关系增强时,相关系数趋于1或-1;当一个变量增大,另一个变量也增大时,表明它们之间是正相关的,相关系数大于0;如果一个变量增大,另一个变量却减小,表明它们之间是负相关的,相关系数小于0;如果相关系数等于0,表明它们之间不存在线性相关关系。

用数学公式表示,皮尔森相关系数等于两个变量的协方差除于两个变量的标准差。

协方差(Covariance):在概率论和统计学中用于衡量两个变量的总体误差。如果两个变量的变化趋于一致,也就是说如果其中一个大于自身的期望值,另一个也大于自身的期望值,那么两个变量之间的协方差就是正值;如果两个变量的变化趋势相反,则协方差为负值。

其中u表示X的期望E(X), v表示Y的期望E(Y)

由于pearson描述的是两组数据变化移动的趋势,所以在基于user-based的协同过滤系统中,经常使用。描述用户购买或评分变化的趋势,若趋势相近则pearson系数趋近于1,也就是我们认为相似的用户。

Pearson 相关系数的缺陷

直观的可以看出,pearson不适用于文本的相似性分析。

pearson存在以下3个问题: 以下图的数据作为测试用例


1. 未考虑重叠记录项的数量对相似度的影响
    上表中,行表示用户(1~5)对项目(101~103)的一些评分值。直观来看,User1和User5用3个共同的评分项,并且给出的评分趋势相
同,User1与User4只有2个相同评分项,虽然他们的趋势也相似,但是由于102的未知,可能是User2对102未发生行为,或者对102很讨厌,所以我们更希望User1和User5更相似,但结果是User1与User4有着更高的结果。
    可以看出pearson系数只会对重叠的记录进行计算。

     同样的场景在现实生活中也经常发生,比如两个用户共同观看了200部电影,虽然不一定给出相同或完全相近的评分,但只要他们之间的趋势相似也应该比另一位只观看了2部相同电影的相似度高!但事实并不如此,如果对这两部电影,两个用户给出的相似度相同或很相近,通过Pearson相关性计算出的相似度会明显大于观看了相同的200部电影的用户之间的相似度。

2.如果只有一个重叠项则无法计算相关性
    从数学上讲,若只有一个重叠的记录,那么至少有一组记录的标准差为0,导致分母为0
从这一点也可以看出,pearson系数不适用与小的或者非常稀疏的数据集。当然,这一特性也有它的好处,无法计算pearson系数可以认为这两组数据没有任何相关性。

3.如果一组记录的所有评分都一样则无法计算相关性
    理由同2.

4.Pearson系数对绝对数值不敏感
    考虑这三组数据,1:(1.0,2.0,3.0,4.0),2:(40.0,50.0,70.0,80.0),3:(50.0,60.0,70.0,80.0),我们可以直观的认为2和3更为相似,它们的重叠评分数目一致,趋势也相同,记录1虽然也满足上述的条件,但是它整体数值很低。在现实中,有人习惯于给出更高的评分,而有人则恰恰相反。
    利用pearson计算它们之间的相似度为:
     1&2: 0.9899494936611665

     2&3: 0.9899494936611665

     1&3: 0.9999999999999999

    可以看出pearson系数对绝对数值并不敏感,它确实只是描述了两组数据变化的趋势。

阅读(2481) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~