Python实用
检查TensorFlow推荐引擎的准确性。
Tensorflow是一种流行的机器学习框架。 人们普遍认为它可以在计算机上利用GPU使其速度非常快。
TF-Recomm是一个基于tensorflow的电影推荐引擎,它使用分解模型和来自movielens的数据集。 原始代码https://github.com/songgc/TF-recomm没有要求建议的界面。
Andy创建了一个版本,用于侦听用户编号的端口,并将返回该用户的建议。 代码绝不是完美的,可能有错误! 代码捆绑在Docker容器中以方便使用。 要使用此代码:
标准小版本
从https://github.com/acobley/TF-recomm.git克隆项目
git clone https://github.com/acobley/TF-recomm.git
运行docker容器:
docker run –name runtfrecomm -p 81:81 -i -t acobley / tfrecomm bash
这将启动一个docker容器,并使用命令行打开它。 切换到TF-recomm目录并运行引擎
python svd_train_val.py
这将训练模型,一旦完成等待套接字连接。 打开另一个窗口并打开一个telnet会话(如果你在Windows上,你将需要一个):
telnet localhost 81
类型和数字在1到约5000之间,您应该得到建议。
GPU大版本
此版本使用更大的数据集,应该使用您的GPU。 此版本尚未经过测试,请确保小版本首先运行。
像以前一样克隆项目,但切换到GPU分支
git checkout GPU
运行docker容器:
docker run –name runtfrecommgpu -p 81:81 -i -t acobley / tfrecommgpu bash
您应该能够以与小型号相同的方式运行它。
问题
该模型是根据来自movielens的数据集进行训练的。 该模型仅使用ratings.dat文件来训练模型。 但是还有另外两个文件,movies.dat和users.dat。 挑战在于编写一个python程序,该程序将询问模型并让您了解模型的准确程度。 为此,您需要使用电影和用户文件。
电影文件:
请参阅http://files.grouplens.org/datasets/movielens/ml-1m-README.txt
该文件的格式为:
MovieID::Title::Genres
Genres are a list with | delimitors.
用户文件
请参阅http://files.grouplens.org/datasets/movielens/ml-1m-README.txt
该文件的格式为:
用户名::性别:年龄::职业::邮政编码
有关Age和Occupation字段的详细信息,请参阅自述文件。
该怎么办
如果仔细观察,您会发现有些用户具有相似的性别,年龄和职业,可能还有邮政编码。 您可以想象用户相同的人群会收到类似的建议。 编写一个Python程序,查找类似人口统计的用户,附加到tensorflow容器,发送用户ID,存储建议并寻找相似之处。 您可以查看返回的类型,看看它们对于类似用户是否相似。 您可以使用python扩展电影文件以包括年龄评级,并将其用作返回电影的比较。 您可能希望使用R来分析您获得的结果以查找统计意义。
该文件的格式为:
用户名::性别:年龄::职业::邮政编码
有关Age和Occupation字段的详细信息,请参阅自述文件。
该怎么办
如果仔细观察,您会发现有些用户具有相似的性别,年龄和职业,可能还有邮政编码。您可以想象用户相同的人群会收到类似的建议。编写一个Python程序,查找类似人口统计的用户,附加到tensorflow容器,发送用户ID,存储建议并寻找相似之处。您可以查看返回的类型,看看它们对于类似用户是否相似。您可以使用python扩展电影文件以包括年龄评级,并将其用作返回电影的比较。您可能希望使用R来分析您获得的结果以查找统计意义。
写一份关于您生成的代码以及您生成的任何结果的报告。将您的代码包含在附录中(以及代码的zip文件)。您的报告应少于10页。