皮尔逊积矩相关系数的学习
皮尔逊积矩相关系数的学习 做相似度计算的时候经常会用到皮尔逊相关系数(Pearson Correlation Coefficient),那么应该如何理解该系数?其数学本质、含义是什么? 皮尔逊相关系数理解有两个角度 一、以高中课本为例,将两组数据首先做Z分数处理之后,然后两组数据的乘积和除以样本数。 Z分数一般代表正态分布中数据偏离中心点的距离。等于变量减掉平均数再除以标准差。标准差则等于变量减掉平均数的平方和再除以样本数最后再开方。所以我们可以将公式依次精简为: 以下为python的实现: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 from math import sqrt #返回p1和p2的皮尔逊相关系数 def sim_pearson(prefs,p1,p2): #得到双方曾评价过的物品列表 si = {} for item in prefs[p1]: if item in prefs[p2]: si[item] = 1 #得到列表元素个数 n = len (si) #如果两者没有共同之处,则返回1 if not n: return 1 #对所有偏好求和 sum1 = sum ([perfs[p1][it] for it in si])