Как работает статистический расчет "похожих товаров / музыки / ..." по покупательскому поведению / прослушиванию? - PullRequest
4 голосов
/ 22 февраля 2011

Я имею в виду предложения продуктов на Amazon или, в частности, рекомендации аналогичных групп на Last.fm.

Учитывая, что вы можете хранить полное поведение слушателей / покупателей в своих покупках (кто слушал, ЧТО как ЧАСТО?), Как вы рассчитываете, какие полосы похожи на какие-либо и сколько?

Я нашел несколько сайтов в Википедии ( Обучение правилам ассоциации , Анализ сродства ), но я хотел бы получить некоторую информацию с точки зрения программиста и, предпочтительно, некоторый псевдокодили код Python для него.

Учитывая, что у меня есть

 dic = {
"Alice"   : { "AC/DC" : 2, "The Raconteurs" : 3, "Mogwai" : 1 },
"Bob"     : { "The XX" : 4, "Lady Gaga" : 3, "Mogwai" : 1, "The Raconteurs" : 1 }
"Charlie" : { "AC/DC" : 7, "Lady Gaga" : 7 }
 }

, где числа являются подсчетами воспроизведения, как бы я повторил это, чтобы найти сходство полос?

Ответы [ 4 ]

5 голосов
/ 22 февраля 2011

Книга " Программирование Коллективного Разума: Создание приложений Smart Web 2.0 " является классической и использует Python. Помимо прочего, он также касается рекомендательных двигателей.

enter image description here

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

Вы можете найти виджет Правила ассоциации (среди прочего) в Orange , который поможет вам начать работу.Еще один полезный пакет, доступный с исходным кодом, - pysuggest , который реализует ряд алгоритмов recsys / коллективной фильтрации.

1 голос
/ 17 июня 2012

Когда у вас есть данные, связывающие пользователей и продукты, вы неявно имеете двудольный граф между этими двумя наборами.(Очень разреженная) матрица смежности этого графа полезна.Если вы поработаете с нормализацией длины столбцов, а затем умножите ее транспонирование на саму матрицу, то в некотором смысле вы получите сходство между элементами, поскольку они отражаются в промежуточной пользовательской базе.

1 голос
/ 16 марта 2011

Я думаю, что вы говорите о совместной фильтрации.Насколько я знаю, Amazon и другие используют Java-фреймворк под названием Apache Mahout, который в двух словах является «фабрикой рекомендаций», основанной на данных пользователя / элемента.

Проверьте это, это бесплатно.Однако я не уверен, подходит ли он для интеграции с Python, я не новичок в этом отделе.

...