【协同过滤推荐算法】欧氏距离表示用户或物品相似度

本文探讨了如何使用欧氏距离来衡量用户或物品在偏好上的相似度,通过具体的计算示例,如EuclidDistance(Prefer,'tommy','jim') = 0.48145600891813006等,展示了该方法在推荐系统中的应用。" 124990275,14209507,Linux文件系统与权限详解,"['Linux', '运维']
摘要由CSDN通过智能技术生成
Prefer = {"jim": {"War": 1.9, "the big bang": 1.0, "The lord of wings": 4.0, "Beautiful America": 4.7}, "lily": {"War": 2.0, "Kongfu": 4.1, "The lord of wings": 3.6}, "tommy": {"War": 2.3, "Kongfu": 5.0, "The lord of wings": 3.0}, "jack": {"War": 2.8, "Kongfu": 5.5, "The lord of wings": 3.5}}
#欧式距离及几何距离,有m个物品就有m维度的空间,把用户u定位到这个m维度的空间里
#用户u在m维度空间里的第i维度的坐标值表示用户对此物品的评分
#这里只计算2维度的情况
def EuclidDistance(prefer, person1, person2):   
    sim = {}
    for item in prefer[person1]:
        if item in prefer[person2]:
            sim[item] = 1#添加共同项到字典中
    #无共同项,返回0
    if len(sim)==0:         
        return 0
    #计算所有共有项目的差值的平方和
    sum_all = sum([pow(prefer[person1][item]-prefer[person2][item], 2) for item in sim])
    #返回改进的相似度函数,距离越大相似度越小
    #两个点完全重合相似度为1    
    return 
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值