皮尔逊相关度

来源:互联网 发布:网店的营销策略数据 编辑:程序博客网 时间:2024/05/22 08:02

在进行影片相似度计算的时候,有的人对于影片的评分习惯偏低,有的人习惯偏高,皮尔逊方法可以修正“夸大分值”的情况。
如果某人总是倾向于给出比另一个人更高的分值,而二者的分值又始终保持一致,则他们也会存在很高的相关性。

# recommendations.py# 返回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 n==0:return 1    # 对所有的偏好求和    sum1=sum([prefs[p1][it]for it in si])    sum2=sum([prefs[p2][it]for it in si])    #求平方和    sum1sq=sum([pow(prefs[p1][it],2)for it in si])    sum2sq=sum([pow(prefs[p2][it],2)for it in si])    #求乘积之和    psum=sum([prefs[p1][it]*prefs[p2][it]for it in si])    # 计算皮尔逊评价值    num=psum-(sum1*sum2/n)    den=sqrt((sum1sq-pow(sum1,2)/n)*(sum2sq-pow(sum2,2)/n))    if den==0:return 0    r=num/den    return r    该函数将会返回一个介于-11之间的数值。
原创粉丝点击