Q:python-recsys是什么东西?
A:
python-recsys是
A python library for implementing a recommender system.
翻译过来就是“用来实现一个推荐系统的python函数库”。
也就是说,这是一个帮助我们实现一个(自定义、个性化的)推荐系统的python函数包。
安装这个库只需要一个简单的指令:
pip install recsys
更多信息请移步<a href="http://ocelma.net/software/python-recsys/build/html/index.html">官方文档</a>或者<a href="https://github.com/ocelma/python-recsys/">github主页</a>
</br>
Q:这个库具体结构是怎样的?
A:
recsys库是一个很小的库,其目录结构和API很快就能读懂。
从github上下载源代码后,会看到四个目录:doc、draft、recsys、tests。
- doc 存放的是项目的文档,基本上都是md文件和rst文件。
- draft目录是一些example脚本,可以在文档里看看这些脚本怎么用,也可以参考这些example的写法来写自己的脚本。
- tests目录则是存放着一些测试代码。
-
recsys目录是最主要的核心目录,存放着我们用到的模块。recsys内部又有四个包:algorithm、datamodel、evaluation、utils。
datamodel包存放着这个小推荐引擎用到的数据结构。
evaluation包存放着一些用来衡量推荐系统性能的函数。
utils包则是存放提高推荐系统性能的工具。
algorithm包则是重头戏,包含着已经实现了协同过滤算法的模块factorize
以及供用户实现新算法的模块baseclass
。
</br>
Q:这个库怎么使用呢?
A :
这个库有两种层次的用法:
- 使用这个库本身已经实现的协同过滤算法来进行推荐工作。
- 自己新建一个类,继承
baseclass
模块里的Algorithm
类,实现自己的算法。
recsys模块里的factorize
模块中的SVD
类和SVDNeighbourhood
封装了基于用户的协同过滤算法和基于物品的协同过滤算法。具体的使用方法请看<a href="http://ocelma.net/software/python-recsys/build/html/quickstart.html">Quick Start</a>和<a href="http://ocelma.net/software/python-recsys/build/html/api.html#algorithms">API文档</a>。
若要自己实现一个算法,则要先继承Algorithm
类,如:
from recsys.algorithm.baseclass import Algorithm class NewResysAlgorithm(Algorithm):
同时,还要覆盖父类Algorithm
的predict
和recommend
方法。此外,库里的datamodel只有user、item、data三个,显然是专门为协同过滤算法服务的。所以有需要的话,还要建立自己的datamodel。
总体来看,recsys库比较小,甚至还可以说有点简陋,但是它实现了协同过滤算法,还给我们提供了自定义推荐算法的框架,这对于我们学习推荐系统是有一定帮助的。