如何根据购买记录计算相似度?

How to calculate similarity based on purchase records?

我有一个购买历史数据集。它包含userid、itemid、购买记录。购买记录表示用户购买该商品的次数。

dataset

那么如何根据这个数据集计算用户或物品的相似度来产生推荐。

您可以使用 Cos 协方差和相关。

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

Mahout 具有基于概率对数似然比 (LLR) 的用户和项目相似性,与其他相似性指标相比,这已被证明具有卓越的性能,并且只是名义上的 "similarity",实际上是相关性测试. Mahout 中的 LLR 为每个检测到的事件(数据集中的行)生成一个分数,该分数通过 spark-itemsimilarity 作业收集在 "indicator" 矩阵中。您可以将其与搜索引擎一起使用来创建推荐系统或使用我们为 PredictionIO 创建的推荐系统。

PredictionIO 是一个具有数据库、工作流控制以及存储和计算引擎集成的机器学习服务器。请参阅 Universal Recommender,它使用 Mahout on Spark,是一个功能齐全的端到端推荐器,可以查询基于用户的推荐项。

您可以使用 Spark MLlib 算法。 Spark 提供 Collaborative filtering - Alternating Least Squares (ALS) 机器学习算法,该算法使用用户、产品和评级进行训练。在您的情况下,评分将是商品的购买次数(用户购买商品的次数)。

您可以按照此处显示的示例直接使用 ALS 算法 Collaborative filtering - ALS