Apache Mahout中推荐算法Slope one源码分析
关于推荐引擎 如今的互联网中,无论是电子商务还是社交网络,对数据挖掘的需求都越来越大了,而推荐引擎正是数据挖掘完美体现;通过分析用户历史行为,将他可能喜欢内容推送给他,能产生相当好的用户体验,这就是推荐引擎。 推荐算法Slope one的原理 首先 Slope one是一种基于项目的协同过滤算法( Item-based Recommendation ),简单介绍这种算法(若理解有误,欢迎大家更正, I am just a beginner ):根据用户们对产品的喜好程度,来将产品分类;举个简单例子:比如有10个用户, 其中有9个人即喜欢产品A,也喜欢产品B,但只有2个人喜欢产品C;于是可以推断产品A和产品B是属于同类的,而产品C可能跟它们不是一类。 好了话不多讲,让我们看看Slope one吧! Slope one是通过用户们对每个产品的评分,来计算产品间的一个差值;这种计算是通过 线性回归 f ( x ) = a x + b 到 的 , 其中a = 1,正如它的名字Slope one(斜率为一);另外用户的评分,在Slope one中 是必不可少的。这里举 例看看它的计算方式:下面是一张用户对书籍的评分表 书 1 书 2 书 3 用户 A 5 3 2 用户 B 3 4 未评分 用户 C 未评分 2 5 书1是否适合推荐给用户C,需要通过Slope one 计算出一个值来判定