Базовый псевдокод для использования SVD с набором данных типа Movielens / Netflix - PullRequest
4 голосов
/ 14 марта 2011

Я пытаюсь понять, как именно начать использовать SVD с набором данных типа 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

На этом этапе мне просто нужно внедрить эту Матрицу в алгоритм 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)
Джама (Ява)
Pyrsvd (питон)

Будут благодарны любые советы, особенно по базовому набору данных. Спасибо большое, Oli

Ответы [ 2 ]

4 голосов
/ 15 марта 2011

См. SVDRecommender в Apache Mahout.Ваш вопрос о формате ввода полностью зависит от того, какую библиотеку или код вы используете.Там нет ни одного стандарта.На каком-то уровне, да, код будет создавать какую-то матрицу внутри.Для Mahout входными данными для всех рекомендателей, если они представлены в виде файла, является файл CSV со строками типа userID,itemID,rating.

2 голосов
/ 14 марта 2011

Набор данных: http://www.grouplens.org/node/73

SVD: почему бы просто не сделать это в SAGE, если вы не понимаете, как сделать SVD? Альфа Wolfram или http://www.bluebit.gr/matrix-calculator/ разложит матрицу за вас, или она в Википедии.

...