使用一个 RNN 对多个客户进行时间序列预测

数据挖掘 机器学习 时间序列 lstm rnn 预测
2022-02-14 21:52:16

我有一个产品,它具有来自多个客户的单变量和多变量时间序列数据。我有可变数量的可用数据。几年到几个月不等。我想要实现的是一个模型,该模型将我所有客户的训练数据作为输入,并一次预测 1 个。因此,利用所有这些模式,然后一次预测一个客户。

例如

Train:
Date        Customer  Variable
2018-01-01  A         10
2018-01-01  B         5
2018-01-01  C         13
2018-01-02  A         9
2018-01-02  B         7
2018-01-02  C         15

Predict:
2018-01-03  B         ?

关于如何制定这个问题的任何帮助以及最好的模型是什么?

1个回答

以下是一些快速的想法:

  1. 客户是否以任何方式相互影响?如果是这种情况,您需要同时将多个客户的信息提供给您的 RNN。如果没有,那么我建议为您的每个客户创建一个时间序列,并将其分别提供给您的 RNN。
  2. 你试图预测的是什么?它是某事的百分比机会吗?它是一个数字(例如客户购买量)。您需要创建输出,以及用于相应地预测该输出的输入。如果您的某些输出彼此没有关系,您也可以使用多个 RNN。例如,如果您试图预测客户的购买量以及客户是否会离开,您可能希望创建两个单独的 RNN,它们将采用不同的输入(例如,使用平均购买量作为 RNN 的输入)预测客户数量,并使用客户访问频率作为预测客户是否会离开的 RNN 的输入
  3. 您的变量值是否存在巨大差异?(例如,一些客户只购买 10 美元,但其他客户购买 100,000 美元,您希望将两者的信息都提供给您的 RNN)如果是这种情况,您可能希望“标准化”您的变量以及输出(标签)你试图预测
  4. 你真的需要RNN吗?如果您的客户的输出与过去的变量序列无关,则放弃 RNN 并使用更简单的方法,例如前馈神经网络或逻辑回归
  5. 您的客户的输出是否受到很久以前的变量的影响?如果是这样,您可能希望在 RNN 中添加一个记忆组件,例如 LSTM
  6. 您的客户是否有任何周期性组件?(例如,客户通常会在将某样东西添加到购物车后 10 天购买)。这会告诉您 RNN 所需的回溯(需要向 RNN 提供多少过去天的数据)

希望能帮助到你。然而,我必须承认,如果不了解输入和输出,就很难回答这个问题。