推荐系统:Slope One 算法

推荐系统:Slope One 算法

本文可以任意转载,转载时请务必以超链接形式标明文章 原始出处版权信息

Slope One 算法是由Daniel Lemire教授在 2005 年提出的一个Item-Based推荐算法。
Slope One 算法试图同时满足这样的的 5 个目标:

  1. 易于实现和维护:普通工程师可以轻松解释所有的聚合数据,并且算法易于实现和测试。
  2. 运行时可更新的:新增一个评分项,应该对预测结果即时产生影响。
  3. 高效率的查询响应:快速的执行查询,可能需要付出更多的空间占用作为代价。
  4. 对初次访问者要求少:对于一个评分项目很少的用户,也应该可以获得有效的推荐。
  5. 合理的准确性:与最准确的方法相比,此方法应该是有竞争力的,准确性方面的微小增长不能以简单性和扩展性的大量牺牲为代价。

使用这个图可以简明扼要的说明一下 Slope One 算法。

  1. User A 给 Item I 打分为 1;给 Item J 打分为 1.5。
  2. Uesr B 给 Item I 打分为 2。
  3. 问题是:User B 给 Item J 打分为多少?
  4. 使用 Slope One 算法,答案是:2.5,2+(1.5-1)=2.5。

是不是非常简单?!Slope One 算法就是这么简单,而且它居然还相当有效!详细的试验分析可以看这里“Slope One Predictors for Online Rating-Based Collaborative Filtering”。

喜欢 Python 的朋友可以看这篇 Blog,“tutorial about how to implement Slope One in Python”,非常详细的介绍了 Slope One 算法在 Python 下的实现步骤。当然了,这只是一个非常简单的实现,你可以使用 MovieLens 或者 EachMovie 的数据集进行一些简单地试验。但如果真正要把它投入到商业环境,还有许多其他的工作必须做好。

我正在使用 Python 实现一个推荐算法模块集,其中也实现了 Slope One 算法,但现在还比较简陋,不太适合开源,等完善一些之后,我会把它开源出来,和大家共享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值