鉴于我有购买历史,是否有任何标准的模式识别算法来预测用户接下来将购买的商品

数据挖掘 机器学习 预测建模 推荐系统
2022-03-12 03:27:33

我有一个用户过去购买的 10 种不同物品的列表。每件商品都被多次购买。我想找到一种用户购买特定商品并预测他接下来会购买什么的模式。

例如,我经营一家布厂,向不同的零售商出售衣服。我想根据零售商购买不同衣服的历史来确定该零售商接下来可能会问我什么衣服。

我们不能使用时间序列,因为购买日期没有相等的间隔。此外,我觉得简单地将按日期订购的购买产品序列传递给神经网络并没有太大帮助。

是否有任何标准算法来识别模式?

我的数据中有两列:1. item_id 2. date_of_purchase

我想创建一个模型来预测用户接下来将再次购买的前 3 件商品。我的模型的输入将是当前日期。输出应该是用户可能有兴趣购买的前 3 个项目。

2个回答

看看关联规则学习 ( https://en.wikipedia.org/wiki/Association_rule_learning )。一个非常常见的算法是 Apriori 算法。您可以使用包 apyori,它的效果很好:https ://pypi.python.org/pypi/apyori/1.1.1

为用户购买的所有物品生成关联规则,而不是在单个交易/购买中。

您可以使用 GRU/LSTM 单元训练一个循环的多对多网络。

输入

  1. 一个项目作为 one-hot 编码
  2. 一个日期编码,以便在从第 365 天切换到第 1 天时没有不连续性。例如,日期可以编码为(x,y)-在 1 环上的位置。年份可以添加为第三个数字。

输出

  1. 下一件购买的物品的概率向量。为您的问题选择前 3 名。
  2. (可选)与上述编码相同的日期。预测用户何时回来可能很有用。

损失

在预测日期时,必须调整损失函数以反映组合输入,例如||yeardiff||2对于年份部分,例如 1 环上的距离或||(x,y)diff||2为了(x,y)部分。

失踪

这个网络缺少真实世界场景的一个重要部分:添加新项目会改变输入大小并需要重新训练。这可以通过使用嵌入而不是项目的 one-hot 编码来解决。