根据购买的产品找到类似用户后,在python中进行交叉销售

根据购买的产品找到类似用户后,在python中进行交叉销售,python,machine-learning,collaborative-filtering,Python,Machine Learning,Collaborative Filtering,我有以下格式的数据: CustomerID P1 P2 P3 P4 P5 P6 P7 C1 0 1 1 0 1 0 0 C2 0 0 1 0 1 0 0 C3 0 0 1 0 0 1 0 C4 0 0 0 0 1 0 0 C5 0 0 0 0 1 1 0 C6 0 1 0 0 1 0 1 0和1是客户是否购买该产品的标志 我想根

我有以下格式的数据:

CustomerID P1 P2 P3 P4 P5 P6 P7
C1         0  1  1  0  1  0  0
C2         0  0  1  0  1  0  0
C3         0  0  1  0  0  1  0
C4         0  0  0  0  1  0  0
C5         0  0  0  0  1  1  0
C6         0  1  0  0  1  0  1
0和1是客户是否购买该产品的标志

我想根据他们的购买情况找到类似的用户,并最终向他们推荐下一个产品。并对结果进行了验证


如何在python中做到这一点?

我做了大量研究,并提出了以下算法来查找客户/用户之间的相似性

  • Jaccard索引(不适用于大型数据集)

  • MinHash(比Jaccard索引更高效,但对于大型数据集仍然需要时间)

  • 聚类机器学习算法(仅适用于可聚类的数据 在圆形中。打印数据时,数据不能形成圆形(群集)

  • 用户协同过滤是我发现的最有效的一种。我们可以利用客户和产品之间的余弦相似性,然后使用KNN算法进行预测

  • 神经网络协同过滤


  • 尝试使用apriori算法:3apriori将给我类似的产品,我将如何决定相似的用户?在简单的情况下,你可以找到用户之间的相关性,并向他推荐相关性最高的用户选择的产品。但是如果你检查不同的基于协同过滤的方法会更好。另外,我目前正在处理同一个问题,与你的数据集相同,但我有超过100万条记录。所以,我试图找到余弦相似性的代码