[关闭]
@caoo 2018-12-09T07:40:34.000000Z 字数 935 阅读 299

数据挖掘之Slope One算法笔记

还有一种比较流行的基于物品的协同过滤算法,名为Slope One,它最大的优势是简单,因此易于实现。
Slope One算法是在一篇名为《Slope One:基于在线评分系统的协同过滤算法》的论文中提出的,由Lemire和Machlachlan合著。这篇论文非常值得一读。
我们用一个简单的例子来了解这个算法。假设Amy给PSY打了3分,Whitney Houston打了4分;Ben给PSY打了4分。我们要预测Ben会给Whitney Houston打几分。
用表格来描述这个问题即:
此处输入图片的描述

我们可以用以下逻辑来预测Ben对Whitney Houston的评分:由于Amy给Whitney Houston打的分数要比PSY的高一分,所以我们预测Ben也会给高一分,即给到5分。

其实还有其他形式的Slope One算法,比如加权的Slope One。

第一步:计算出两两物品之间的差值(可以在夜间批量计算),在例子中,这个步骤就是得出Whitney Houston要比PSY高一分。
第二步:进行预测,比如一个新用户Ben来到了我们网站,他从未听过Whitney Houston的歌曲,我们想要预测他是否喜欢这个歌手。
此处输入图片的描述
通过利用他评价过的歌手以及我们计算好的歌手之间的评分差值,就可以进行预测了。

一、计算差值

我们先为上述例子增加一些数据:
此处输入图片的描述
计算物品之间差异的公式是:

其中,card(S)表示S中又多个元素;X表示所有评分值得集合;则表示同时评价过物品 的用户数。

我们来考察PSY和Taylor Swift 之间的差值,的值是2 ---- 因为有两个用户(Amy和Ben)同时对PSY和Taylor Swift打过分。

分子uj-ui表示用户对j的评分减去对i的评分,代入公式得:

此处输入图片的描述
所以PSY和Taylor Swift的差异是2,即用户们给Taylor Swift的评分比PSY要平均高出两分。那Taylor Swift和PSY的差异呢?

此处输入图片的描述

参考资料

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注