推荐系统实践:基于物品的协同过滤算法原理及实现(含改进算法)

       基于物品的协同过滤算法(ItemCF)给用户推荐那些和他们之前喜欢的物品相似的物品。比如:该算法会因为你购买过《数据挖掘导论》而给你推荐《机器学习》。不过ItemCF算法不利用物品的内容属性计算物品之间的相似度,它主要通过分析用户的行为记录计算物品之间的相似度。该算法认为,物品A和物品B具有很大相似度的原因是因为喜欢物品A的用户大都也喜欢物品B

       基于物品的协同过滤算法主要分为两步。

1. 计算物品的相似度

    1.1遍历训练数据,统计喜欢每个物品的用户数,存入movie_popular列表中,如movie_popular[i]表示喜欢电影i的用户数。

    1.2建立物品相似度矩阵

       如下图所示,左图为训练数据格式,右图为矩阵C,遍历训练数据,计算出喜欢两两物品用户数,填入矩阵C中,如同时喜欢物品a和物品b的用户有1人,则C[a][b] = 1。

                                          

       得到矩阵C后,利用如下公式计算物品之间的相似度。w_{ij}表示物品i和物品j的相似度,N(i)表示喜欢物品i的用户数,分子表示同时喜欢物品i和j的用户数。因此,该公式可以理解为喜欢物品i的用户中有多少比例的用户也喜欢物品j

                                                                            

       物品相似度计算公式的改进:上述公式存在一个问题,如果物品j很热门,很多人都喜欢,那么w_{ij}就会很大,接近于1。因此上述公式会造成任何物品都会和热门的物品有很大的相似度,这对于致力于挖掘长尾信息的推荐系统来说显然不是一个好的特性。为了避免推荐出热门的物品,可以用下面的公式:

                                                                            

       这个公式惩罚了物品j的权

  • 23
    点赞
  • 222
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值