LSTM的多元多元多步时间序列预测

时间:2020-07-01 14:55:23

标签: python tensorflow keras lstm predict

我了解如何为多元时间序列创建模型,并且还知道如何为该序列产生多步输出。但是如何扩展此模型以在多个时间序列上工作?

我的数据包含许多国家/地区的时间序列,每个国家/地区都有5个特征。我的目标是针对每个国家/地区提前28天做出预测。

这是一个多元时间序列的图(图中未显示其中一个特征): enter image description here

以下模型是一种能够产生28天的预测(尽管它们不是很准确)的LSTM编码器解码器:

Model: "sequential_1"
_________________________________________________________________
Layer (type)                 Output Shape              Param #
=================================================================
lstm_1 (LSTM)                (None, 10)                640
_________________________________________________________________
repeat_vector_1 (RepeatVecto (None, 7, 10)             0
_________________________________________________________________
lstm_2 (LSTM)                (None, 7, 10)             840
_________________________________________________________________
time_distributed_1 (TimeDist (None, 7, 5)              55
=================================================================
Total params: 1,535
Trainable params: 1,535
Non-trainable params: 0
_________________________________________________________________

培训数据分为7天,每个期间比前一天提前一天。示例(但只有一个功能而不是5个功能):

[1, 2, 3, 4, 5, 6, 7], [2, 3, 4, 5, 6, 7, 8] ...

提供给LSTM的数据具有以下形状:

Train_x shape: (113, 7, 5)
Train_y shape: (113, 7, 5)
Test shape: (4, 7, 5)

如何在187个国家/地区进行此操作?

我发现一个answer说,在培训过程中可以使用该国家的名称作为变量。另一个one显示了如何将时间序列数据与分类值合并。

在第二个线程中,最好的方法是将递归层的权重与学习到的分类数据表示相加(或设置)。基本上将国家/地区名称传递给Dense层,然后将输出结果添加到LSTM权重中。

我发现有discussion涉及在Keras中设置图层的权重,但是没有显示如何添加权重。

我的主要问题是:

  • 如果必须在Keras模型中连接所有节点,则名称的密集层在哪里?
  • 如何添加权重而不是覆盖权重(会有所不同)吗?
  • 是否有更好的预测多个时间序列的方法?
  • 仅根据每个国家/地区的数据重新训练模型有多糟糕?

0 个答案:

没有答案