2016-09-14 2 views
0

У меня есть набор данных истории покупок. Он содержит идентификаторы пользователя, itemid, покупки. Записи о покупке означает, сколько раз пользователь покупал товар.Как рассчитать подобие на основе записей о покупке?

dataset

Так как я могу вычислить пользователя или элемент сходства на основе этого набора данных для получения рекомендаций.

ответ

0

Вы можете пойти на Спарк MLlib алгоритмов. Spark предоставляет Collaborative filtering - Alternating Least Squares (ALS) алгоритм машинного обучения, который проходит обучение с использованием пользователя, продуктов и рейтинга. В вашем случае рейтинг будет считан (количество раз, когда пользователь приобрел предмет) покупок для товара.

Вы можете сразу перейти к алгоритму ALS, следуя приведенному здесь примеру Collaborative filtering - ALS.

+0

Большое вам спасибо. Я собираюсь попробовать это. –

0

Вы можете использовать Cos-дисперсию и корреляцию Cos.

https://github.com/Krewn/KPlot/blob/gh-pages/analysisTools.py

+0

Не могли бы вы дать мне введение? Или Java-код –

+0

В java я, вероятно, начинаю здесь, http://commons.apache.org/proper/commons-math/javadocs/api-3.6.1/index.html – kpie

0

Mahout имеет пользователь и элемент подобие на основе вероятностного журнала отношение правдоподобия (LLR), это было продемонстрировано, чтобы дать высокую производительность по сравнению с другими метриками подобия и является лишь номинально «сходство», на самом деле корреляционный тест. LLR в Mahout генерирует оценку для каждого обнаруженного события (строка в вашем наборе данных). Это собирается в матрице «индикатор» с заданием spark-itemsimilarity. Вы можете использовать это вместе с поисковой системой, чтобы создать рекомендацию или использовать тот, который мы создали для PredictionIO.

PredictionIO - это компьютерный обучающий сервер с БД, контроль рабочего процесса, а также интеграция с памятью и вычислением. См. Universal Recommender, в котором используется Mahout on Spark и является полнофункциональным полнофункциональным рекомендатором, который может быть запрошен для элементов пользовательских рекомендаций.

+0

Спасибо. Я использовал лог-правдоподобие. Но он игнорирует записи о покупке. Я думаю, если мы сможем улучшить систему рекомендаций на основе записей о покупке. Потому что, если пользователь купил элемент больше раз, он, скорее всего, укажет, что пользователю нравится этот элемент больше. –

+0

Вы можете подумать, что я сделал перекрестные проверки с использованием танимото, который является основным показателем сходства, который использует длину вектора (количество покупок), косинус (который не использует длину, но использует количество покупок) и LLR beat и с большим отрывом. Это было на реальных данных о покупке ecom у крупного интернет-магазина. Это связано с тем, что количество покупок часто не указывает на предпочтение, оно указывает что-то о продукте, как сейчас долгое время (дезодорант против банки красного быка ;-). – pferrel

Смежные вопросы