我正在努力弄清楚如何开始使用奇异值分解与MovieLens/Netflix类型的数据集进行评级预测。我非常感谢任何简单的python/java示例,或者相关过程的基本伪代码。有许多论文/帖子总结了整个概念,但我不确定如何开始实现它,即使使用了许多建议的库。
据我所知,我需要按如下方式转换我的初始数据集:
初始数据集:
user movie rating
1 43 3
1 57 2
2 219 4需要旋转到以下位置:
user 1 2
movie 43 3 0
57 2 0
219 0 4在这一点上,我是否只需要将这个Matrix注入到可用库提供的SVD算法中,然后(以某种方式)提取结果,或者我还需要做更多的工作?
下面是我读过的一些信息:
http://www.netflixprize.com/community/viewtopic.php?id=1043
http://sifter.org/~simon/journal/20061211.html
http://www.slideshare.net/NYCPredictiveAnalytics/building-a-recommendation-engine-an-example-of-a-product-recommendation-engine
http://www.slideshare.net/bmabey/svd-and-the-netflix-dataset-presentation
。。和其他一些论文
一些库:
LingPipe(java)
Jama(java)
Pyrsvd(python)
任何提示都将受到赞赏,特别是在基本数据集上。非常感谢,奥利
发布于 2011-03-15 17:31:56
请参阅Apache Mahout中的SVDRecommender。关于输入格式的问题完全取决于您使用的是什么库或代码。没有一个标准。在某种程度上,是的,代码将在内部构造某种类型的矩阵。对于Mahout,当作为文件提供时,所有推荐器的输入都是一个CSV文件,其中包含像userID,itemID,rating这样的行。
发布于 2011-03-14 12:14:17
数据集: http://www.grouplens.org/node/73
SVD:如果你不懂怎么做,为什么不直接用SAGE来做呢?Wolfram alpha或http://www.bluebit.gr/matrix-calculator/会为你分解矩阵,或者它在维基百科上。
https://stackoverflow.com/questions/5293802
复制相似问题