Итак, я просто вонзаю в дикую природу. Я действительно не особо разбираюсь в майнинге данных. Спрашиваю из чистого интереса, потому что у меня действительно не будет времени попробовать поучаствовать в этом конкурсе.
Но просто для удовольствия, как бы вы с этим справились?
Это работает примерно так: вы получаете действительно большой набор идентификаторов фильмов и голосов пользователей. Теперь, когда какой-то пользователь и фильм проголосовали за фильм, какой рейтинг он дал бы этому фильму?
РЕДАКТИРОВАТЬ URL для указанного приза: http://www.netflixprize.com/





Хорошо, вот моя идея:
Мои занятия по статистике немного пропали. Но вы можете выполнить линейную регрессию с помощью смешанной модели, т.е. е. с фиктивными групповыми переменными, чтобы узнать индивидуальную предвзятость каждого пользователя.
Итак, это был бы мой первый шаг, имея такую модель:
оценка фильма пользователем = оценка фильма + предвзятость пользователя.
у каждого пользователя одинаковая предвзятость ко всем фильмам.
Теперь постройте граф, подобный этому: каждый фильм является узлом, и для каждого пользователя добавьте ребро или увеличьте его вес на единицу между всеми парами фильмов, которые нравятся этому пользователю.
Запустите взвешенное кластерное редактирование на графике, чтобы определить кластеры фильмов. Измените определение «лайков» выше, чтобы получить довольно большие кластеры.
Теперь мы улучшаем модель:
оценка фильма пользователем = оценка фильма + предвзятость пользователя + предвзятость кластера.
И что ж, с этим я бы пошел и предсказал.
Редактировать: Лучше сделайте 5 кластеризацию. Во-первых, добавляйте ребра только для 5-звездочных голосов. В следующем - за 4 и 5 звезд. И так далее.
А теперь модель такая:
Оценка фильма пользователем = оценка фильма + общая предвзятость + предвзятость 5 звезд + предвзятость 4-5 звезд + ... + предвзятость 5-4-3-2-1
регрессируйте и прогнозируйте!
Очевидно, у меня нет достаточно хорошей идеи, иначе я бы работал над этим, а не публиковал здесь :)
Wired освещал прогресс в получении приза, например, на здесь. Большинство команд делятся своими знаниями через некоторое время, поэтому все они довольно близки друг к другу, но кажется (как часто бывает), что на последние 20% уйдет 80% усилий.
Я бы попытался решить проблему с такими фильмами, как Наполеон Динамит, которые не подходят ни к одному из используемых в настоящее время графиков. Нравится ли вам этот фильм, похоже, это не имеет ничего общего с вашими чувствами к Супермену или Молчанию ягнят и т. д. Я думаю, что достаточно большой «тренировочный» набор решит эту проблему, но такой набор невозможен, поэтому вместо этого я бы попытался сосредоточиться на поиске способа сгруппировать эти странные фильмы, а затем обработал бы их по-другому, похоже, тип фильма, который вы любите или ненавидите, а не тот, который вы считаете нормальным, поэтому я бы не использовал нелинейный рейтинг алгоритм.
Что ж, использование Cluster Editing, как я предлагал, сделало бы чудаков самостоятельным кластером, я полагаю. Может, мне стоит попробовать свою идею и посмотреть, насколько я ошибаюсь.
Итак, возможно, для тех трех читателей, которые НЕ полностью знакомы с линейной регрессией, как я: они требуют улучшить свои прогнозы на 10%. Это тяжело. Это сложно, потому что я полагаю, что оценка выбора пользователя просто по среднему выбору, сделанному другими пользователями, вероятно, уже является хорошей оценкой. Я хочу сказать: осталось не так много места для улучшений.
О том, как команда выиграла приз за прогресс в размере 50 тысяч долларов, и как им это удалось, вы можете прочитать здесь: http://www.netflixprize.com/assets/ProgressPrize2008_BellKor.pdf
Я не понимаю большей части этого. До соревнований я мог предположить, что генетические алгоритмы были бы лучшим подходом, но похоже, что они этого не использовали.
Конечно, мы подскажем вам несколько хороших идей, вы зарабатываете безумные деньги. Мы лохи?