皮尔逊相关度

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

# 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之间的数值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值