Slop One 算法
2013-11-13 09:48
141 查看
Slope One 算法是由
Daniel Lemire 教授在 2005 年提出的一个
Item-Based 推荐算法。
Slope One 算法试图同时满足这样的的 5 个目标:
易于实现和维护:普通工程师可以轻松解释所有的聚合数据,并且算法易于实现和测试。
运行时可更新的:新增一个评分项,应该对预测结果即时产生影响。
高效率的查询响应:快速的执行查询,可能需要付出更多的空间占用作为代价。
对初次访问者要求少:对于一个评分项目很少的用户,也应该可以获得有效的推荐。
合理的准确性:与最准确的方法相比,此方法应该是有竞争力的,准确性方面的微小增长不能以简单性和扩展性的大量牺牲为代价。
使用这个图可以简明扼要的说明一下 Slope One 算法。
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 的数据集进行一些简单地试验。但如果真正要把它投入到商业环境,还有许多其他的工作必须做好。
Daniel Lemire 教授在 2005 年提出的一个
Item-Based 推荐算法。
Slope One 算法试图同时满足这样的的 5 个目标:
易于实现和维护:普通工程师可以轻松解释所有的聚合数据,并且算法易于实现和测试。
运行时可更新的:新增一个评分项,应该对预测结果即时产生影响。
高效率的查询响应:快速的执行查询,可能需要付出更多的空间占用作为代价。
对初次访问者要求少:对于一个评分项目很少的用户,也应该可以获得有效的推荐。
合理的准确性:与最准确的方法相比,此方法应该是有竞争力的,准确性方面的微小增长不能以简单性和扩展性的大量牺牲为代价。
使用这个图可以简明扼要的说明一下 Slope One 算法。
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 的数据集进行一些简单地试验。但如果真正要把它投入到商业环境,还有许多其他的工作必须做好。
相关文章推荐
- Slop One 算法
- GrabCut in One Cut(基于图割算法grabcut的一次快速图像分割的OpenCV实现)----目前效果最好的图割
- LeetCode算法问题18 —— Ones and Zeroes
- 推荐算法之Slope One Java 及 PHP实现
- Linear regression with one variable算法实例讲解(绘制图像,cost_Function ,Gradient Desent, 拟合曲线, 轮廓图绘制)_矩阵操作
- One Day One Step 之贪心算法(1)
- JM73中encode_one_marcoblock()中关于帧内预测的函数流程===附:帧内预测的算法流程
- LeetCode算法题目:Number of Digit One
- 算法实现: OTP(One-Time Pad) 一次一密密码本 加解密
- 文本聚类算法之一趟聚类(One-pass Cluster)算法的python实现
- OOP: One pont of view of OOP与基于算法设计的区别
- GrabCut in One Cut(基于图割算法grabcut的一次快速图像分割的OpenCV实现)----目前效果最好的图割
- GrabCut in One Cut(基于图割算法grabcut的一次快速图像分割的OpenCV实现)----目前效果最好的图割
- 天天写算法之Sequence one
- 算法练习:URAL 1495 One-two, One-two 2
- 75. Sort Colors --- one-pass algorithm --- leetcode算法笔记
- 经典算法——Number of Digit One
- 算法练习2:Two fighters, one winner.
- One Algorithm A Day --- INSERTION-SORT--算法入门
- 算法one