(1)基于用户的协同过滤算法 在上面求相似邻居的时候,通常是求出TOP K邻居,然后根据邻居的相似度权重以及它们对物品的偏好,预测当前用户没有偏好的未涉及物品,计算得到一个排序的物品列表进行推荐。
(2)基于物品的协同过滤算法 跟上述的基于用户的协同过滤算法类似,但它从物品本身,而不是用户角度。比如喜欢物品A的用户都喜 欢物品C,那么可以知道物品A与物品C的相似度很高,而用户C喜欢物品A,那么可以推断出用户C也可能喜欢物品C。
关键的地方在于特征工程,也就是可以表明用户的喜好特征以及物品属性。
上面已经介绍了协同过滤的核心思想,现在就来实战一下吧! 采用数据集如下链接:http://grouplens.org/datasets/movielens/,这个数据集是很多用户对各种电影的评分。接下来先采用Python实现基于用户的协同过滤算法。
首先,我们需要以表格形式读取数据,需要用到Texttable第三方包。安装包如下链接:https://pypi.python.org/pypi/texttable/,更多方法的使用需要参考Textdtable的源文件texttable.py。接下来可以实现协同过滤算法了。