Q:python-recsys是什么东西?
A:
python-recsys是
A python library for implementing a recommender system.
翻译过来就是“用来实现一个推荐系统的python函数库”。
也就是说,这是一个帮助我们实现一个(自定义、个性化的)推荐系统的python函数包。
安装这个库只需要一个简单的指令:
pip install recsys
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。
Q:这个库怎么使用呢?
A :
这个库有两种层次的用法:
使用这个库本身已经实现的协同过滤算法来进行推荐工作。
自己新建一个类,继承baseclass模块里的Algorithm类,实现自己的算法。
recsys模块里的factorize模块中的SVD类和SVDNeighbourhood封装了基于用户的协同过滤算法和基于物品的协同过滤算法。具体的使用方法请看Quick Start和API文档。
若要自己实现一个算法,则要先继承Algorithm类,如:
from recsys.algorithm.baseclass import Algorithm class NewResysAlgorithm(Algorithm):
同时,还要覆盖父类Algorithm的predict和recommend方法。此外,库里的datamodel只有user、item、data三个,显然是专门为协同过滤算法服务的。所以有需要的话,还要建立自己的datamodel。
总体来看,recsys库比较小,甚至还可以说有点简陋,但是它实现了协同过滤算法,还给我们提供了自定义推荐算法的框架,这对于我们学习推荐系统是有一定帮助的。