为澄清起见,我正在针对多变量输入训练LSTM:数量时间序列和两个二进制外生变量。
series_scaled exog1 exog2 target
0 0.000000 0.0 0.0 NaN
1 0.000000 1.0 0.0 NaN
2 0.084844 1.0 0.0 NaN
3 0.169688 1.0 0.0 NaN
4 0.254531 1.0 0.0 NaN
5 0.339375 1.0 0.0 0.000000
6 0.424219 1.0 0.0 0.000000
7 0.509063 0.0 0.0 0.084844
8 0.523664 0.0 0.0 0.169688
9 0.523437 0.0 0.0 0.254531
我编写了一个函数,该函数使用输入和目标来创建: 具有形状(238、5、3)的X_data(时间步数,look_back,要素数) Y_data,形状为(238,5)(时间步数,look_forward)
因此,基本上在这种情况下,对LSTM进行除最后5个输入数据之外的所有训练,然后在“测试”期间预测最后5个(为简单起见,通常需要大约50个时间步长)。
也就是说,将最后5个数量作为“块”而不是作为滚动预测来预测(其中,每个新的估计值将作为下一个时间步的输入数据输入模型中)。
有没有办法将外来数据用于这种区块预测?
也就是说,我想输入(在测试期间)外生变量的值,以便测试预测依赖于它们。
我花了一些时间了解如何为LSTM模型确定输入和输出的尺寸以及准备输入和输出数据,只是这个问题仍然存在。
目前,我正在考虑“滚动”预测,其中在测试期间,每个时间步长预测值都会附加到输入数据中。这样,也可以为此滚动输入设置外生变量。
我希望我已经说清楚了。谢谢!