4

我正在努力弄清楚如何开始使用带有 MovieLens/Netflix 类型数据集的 SVD 进行评级预测。我非常感谢 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

此时,我是否只需将该矩阵注入可用库提供的 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)

任何提示都将不胜感激,尤其是在基本数据集上。非常感谢,奥利

4

2 回答 2

4

请参阅Apache Mahout 中的SVDRecommender。您关于输入格式的问题完全取决于您使用的库或代码。没有一个标准。在某种程度上,是的,代码将在内部构造某种矩阵。对于 Mahout,所有推荐器的输入(当作为文件提供时)是一个 CSV 文件,其中包含类似userID,itemID,rating.

于 2011-03-15T09:31:56.310 回答
2

数据集: http ://www.grouplens.org/node/73

SVD:SAGE如果您不了解如何进行 SVD,为什么不直接做呢?Wolfram alpha 或http://www.bluebit.gr/matrix-calculator/将为您分解矩阵,或者它在维基百科上。

于 2011-03-14T04:14:17.427 回答