« | October 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | |
| 公告 |
暂无公告... |
Blog信息 |
blog名称: 日志总数:111 评论数量:190 留言数量:-24 访问次数:640803 建立时间:2007年4月21日 |

| |
[推荐系统]推荐系统:Slope One 算法【转帖】 网上资源
赵勇 发表于 2007/4/21 23:27:30 |
http://my.donews.com/clickstone/2007/01/14/uljncxqsrdmqwnhqwazkhyicogwuqzaklkxn/
推荐系统:Slope One 算法
Slope One 算法是由 Daniel Lemire 教授在 2005 年提出的一个 Item-Based 推荐算法。Slope One 算法试图同时满足这样的的 5 个目标:
易于实现和维护:普通工程师可以轻松解释所有的聚合数据,并且算法易于实现和测试。
运行时可更新的:新增一个评分项,应该对预测结果即时产生影响。
高效率的查询响应:快速的执行查询,可能需要付出更多的空间占用作为代价。
对初次访问者要求少:对于一个评分项目很少的用户,也应该可以获得有效的推荐。
合理的准确性:与最准确的方法相比,此方法应该是有竞争力的,准确性方面的微小增长不能以简单性和扩展性的大量牺牲为代价。
使用这个图可以简明扼要的说明一下 Slope One 算法。500)this.width=500'>
User A 给 Item I 打分为 1;给 Item J 打分为 1.5。
Uesr B 给 Item I 打分为 2。
问题是:User B 给 Item J 打分为多少?
使用 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 算法,但现在还比较简陋,不太适合开源,等完善一些之后,我会把它开源出来,和大家共享。 |
|
|