4

我很努力地弄清楚如何開始使用SVD和MovieLens/Netflix類型的數據集來進行評級預測。我非常感謝python/java中的簡單示例,或者所涉及的過程的基本僞代碼。有許多論文/文章總結了整體概念,但我不確定如何開始實施它,即使使用了一些建議的庫。使用SVD和Movielens/Netflix類型數據集的基本僞代碼

據我瞭解,我需要如下轉換我的初步數據集:

初始數據集:

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

請參閱Apache Mahout中的SVDRecommender。您關於輸入格式的問題完全取決於您使用的庫或代碼。沒有一個標準。在某種程度上,是的,代碼將在內部構造某種矩陣。對於Mahout,所有推薦器的輸入(當作爲文件提供時)都是一個CSV文件,其行數爲userID,itemID,rating

+0

謝謝肖恩,看起來非常棒。我今天要試一試。 – oli 2011-03-15 11:52:18

2

數據集:http://www.grouplens.org/node/73

SVD:爲什麼不直接做在SAGE,如果你不明白怎麼做SVD? Wolfram alpha或http://www.bluebit.gr/matrix-calculator/將爲您分解矩陣,或者它在維基百科上。

+1

嗨老,真的很感激你回到我身邊。我應該澄清說,我已經使用了數據集,並使用皮爾遜/餘弦相似度對Movielens數據集的一個子集進行了標準kNN預測。鑑於我讀過的SVD在這裏應該給我更好的結果,所以我很想親自實施它,但我不確定在Movielens數據集中需要採取的步驟。正如你所建議的那樣,我要和SAGE一起玩,看看能不能開始結束這個過程;如果您對採取的步驟有任何粗略的指導,我會很感激。謝謝,oli。 – oli 2011-03-14 22:32:15

+1

當然,請觀看本講座:http://video.google.com/videoplay?docid=-3184505661983090095#。你將矩陣分成三個矩陣。這就像一個特徵分解。 – isomorphismes 2011-04-13 11:59:55