python版的推荐系统crab初探

一、crab简介

 

这个寒假,翻了翻《集体智慧编程》这本书的前几章。第2章讲的就是推荐系统,觉得挺有意思的。然后上网搜了搜有关python的推荐系统,在推荐系统开源软件列表汇总和点评这篇文章,看了关于python推荐系统的两个开源项目,是crab和python-recsys。于是安装试用了一下crab。

Crab是基于Python开发的开源推荐软件,其中实现有item和user的协同过滤。据说更多算法还在开发中,
Crab的python代码看上去很清晰明了,适合一读

二、安装crab

 

crab官网有相关的安装说明。需要提醒的是,我按照官网的说明,可以安装成功,但是该模块会有一些函数和方法导入不进去。后来,发现,正确的安装方法应该是,先在这里下载crab源码,用python setup.py install的方法安装,然后再使用pip install -U crab或者easy_install -U crab的方法升级该源码。

三、快速试用crab

 

crab官方文档目前只有一个Introducing Recommendation Engines可以浏览,文档还有待建设。

下面就按照这个介绍进行,先导入数据集

我们可以在模块目录下打开该示例数据集(sample_movies.csv):

该文件每行通过分号被分成三列。第一列是用户名;第二列是电影名;第三列是评分。相信看过《集体智慧编程》的同学对这样的示例数据很眼熟吧。我们也可以用这个格式来构造自己的数据集。

将movies.data打印出来可以看到这样的结果:

打印结果是一个字典。最外面的一层数字1-6是用户id。每个用户id对应了该用户所评分的对应,如:用户1,的第一部电影1对应的评分是3分。当然接下来我们可以打印出用户id列表和电影id列表,方便查看:

可以看到,用户1就是Jack Matthews,电影就是Lady in the water。

下面建立movies的模型:

接下来,导入皮尔逊相关度和用户相似度,建立起相似度模型:

这里基于用户模型的函数参数设置为:similarity = UserSimilarity(数据模型,相似度模型)

最后,使用基于用户推荐的方法,就可以输出为用户5(Toby)的影片推荐了三部电影:

这个推荐系统的架构,是这样的:

 

 

2条回应:“python版的推荐系统crab初探”

  1. 说道:

    怎么算是crab安装成功啊

发表评论

电子邮件地址不会被公开。 必填项已用*标注