皮尔逊相关度评价-寻找用户相似度

1:python的数据字典格式在《集体智慧》中的,

 

prefs={'a':{'harrybotter':2.5,'superman':2.0}}等这样的字典格式

 2:数学公式:

 

http://zh.wikipedia.org/zh-cn/%E7%9B%B8%E5%85%B3#.E7.9A.AE.E5.B0.94.E9.80.8A.E7.A7.AF.E5.B7.AE.E7.B3.BB.E6.95.B0

 

 

皮尔逊积差系数

参见皮尔森积差相关系数

[编辑]数学特征

其中,E数学期望,cov表示协方差,和 是标准差

因为,,同样地,对于,可以写成

当两个变量的标准差都不为零,相关系数才有定义。从柯西-施瓦茨不等式可知,相关系数的绝对值不超过1。当两个变量的线性关系增强时,相关系数趋于1或-1。当一个变量增加而另一变量也增加时,相关系数大于0。当一个变量的增加而另一变量减少时,相关系数小于0。当两个变量独立时,相关系数为0.但反之并不成立。 这是因为相关系数仅仅反映了两个变量之间是否线性相关。比如说,X是区间[-1,1]上的一个均匀分布的随机变量。Y = X2. 那么Y是完全由X确定。因此Y 和X是不独立的。但是相关系数为0。或者说他们是不相关的。当Y 和X服从联合正态分布时,其相互独立和不相关是等价的。

当一个或两个变量带有测量误差时,他们的相关性就受到削弱,这时,“反衰减”性(disattenuation)是一个更准确的系数。

3:python的实现:


皮尔逊相关度评价-寻找用户相似度_第1张图片

分子=E(XY)-E(X)E(Y)=pSum/n-(sum1*sum2)/n*n

分母= sqrt((sum1Sq/n-pow(sum1,2)/n*n)*(sum2sq/n-pow(sum2,2)/n*n))

r=分子/分母=上面的num/den

 

总结:

皮尔逊相关是对用户对相同的物品的喜欢程度,必需求出用户的共同物品,已经分别的和,按照公式就可以算出r
 

你可能感兴趣的:(相似度)