利用在线零售数据为客户预测未来的订单日期和订单金额

数据挖掘 机器学习 深度学习 时间序列
2022-03-01 18:23:02

使用在线零售 II 数据集(https://archive.ics.uci.edu/ml/datasets/Online+Retail+II),我试图预测每个客户何时下订单,如果可能的话,货币这些订单的价值。这将是一个真正的在线零售店的概念证明,我将可以在其中访问更多的数据/功能。

当前数据集包含以下属性:

  • InvoiceNo : 发票编号。标称。唯一分配给每笔交易的 6 位整数。如果此代码以字母“c”开头,则表示取消。
  • StockCode:产品(项目)代码。标称。唯一分配给每个不同产品的 5 位整数。
  • 描述:产品(项目)名称。标称。
  • 数量:每笔交易的每个产品(项目)的数量。数字。
  • InvoiceDate:发票日期和时间。数字。生成交易的日期和时间。
  • 单价:单价。数字。以英镑为单位的产品价格。
  • CustomerID:客户编号。标称。唯一分配给每个客户的 5 位整数。
  • 国家:国家名称。标称。客户所在国家/地区的名称。

我目前的直觉是将数据建模为每日时间序列,输出当天可能订购的客户以及这些订单的价值(如果可能的话?)。输出要么是一个稀疏的、单热编码的 shape 矩阵num_customers X num_customers,要么是一个更密集的大小向量num_customers(可能有成千上万的客户)。我不太确定如何,或者即使模型也能够输出订单的数量。该模型可能会被输入到 LSTM 网络或类似网络中。我想这将被视为多元时间序列预测(仍在此处学习)?

由此,我希望能够对下一年的每一天进行预测,以预测下一个订单日期、客户价值和客户流失风险

由于这是将人类行为建模为时间序列的尝试,没有从一天到下一天的直接相关性(与预测每日温度或股票价格相反),并且有这么多变量,我也很担心会像不可预测的噪音一样消失。

  1. 无论如何,我在正确的轨道上吗?(任何见解将不胜感激)
  2. 这是否应该分成多个模型,如果是,有多少?
  3. 有没有人有任何提示,或者知道可以为我指明正确方向的好文章或教程?
  4. one-hot 编码矩阵与 multi-hot 编码向量的优点是什么(不确定这是否是正确的名称)?

谢谢!

1个回答

按顺序回答您的观点:

  1. 我通常可以理解您要做什么。但是,您应该记住一些注意事项:

    1.1。鉴于您正在尝试为所有客户进行时间序列预测,那么您很可能对面板数据建模解决方案感兴趣 - 即考虑到数据都是横截面(在某个时间点)这一事实的解决方案和时间序列(跨越多个时间段)。另一种方法是简单地为每个客户运行一个单独的时间序列,这可能被证明是非常低效的。

    1.2. 这将被视为多元时间序列预测——前提是价格实际上取决于其自身以外的变量,即数量、国家等。您是否计划将这些作为解释变量纳入时间序列模型?

  2. 很难说应该立即使用多少模型,但我可能倾向于为这种情况构建一个单一的面板数据模型——你总是可以在数据的一个子集上构建它作为概念证明,然后从那里开始工作. 构建多个 LSTM 模型似乎付出了太多努力而回报太少(就预测准确性而言)。

  3. 我倾向于看一下线性模型——它是一个为处理面板数据而设计的 Python 库。

  4. 这些技术用于表示分类数据 - 您可能会发现以下答案很有用。

希望这会有所帮助,如果我可以对上述内容提供任何进一步的说明,请告诉我。