我正在尝试使用移位的火车数据来预测简单的一个特征时间序列数据。源代码如下所示:
DATE PRICE
0 1987-05-20 18.63
1 1987-05-21 18.45
2 1987-05-22 18.55
3 1987-05-25 18.60
4 1987-05-26 18.63
带有数据链接下载的实际代码在这里提供:gist
所以主要问题是它实际上无法预测下一步。粗略地说: y_train 通过参数中定义的时间步长相对于 X_train “移动”。所以我们得到 X_train 和 y_train 是这样的:
timesteps = 5
data = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
# After manipulations which you can find in gist we getting this:
X_train =
[[ 1 2 3 4 5]
[ 2 3 4 5 6]
[ 3 4 5 6 7]
[ 4 5 6 7 8]
[ 5 6 7 8 9]
[ 6 7 8 9 10]
[ 7 8 9 10 11]
[ 8 9 10 11 12]
[ 9 10 11 12 13]
[10 11 12 13 14]]
y_train =
[[ 6 7 8 9 10]
[ 7 8 9 10 11]
[ 8 9 10 11 12]
[ 9 10 11 12 13]
[10 11 12 13 14]
[11 12 13 14 15]
[12 13 14 15 16]
[13 14 15 16 17]
[14 15 16 17 18]
[15 16 17 18 19]]
因此可以公平地假设,在使用 X_train(作为输入)和 y_train(作为输出)训练 LSTM 模型之后,我们得到的模型能够提前预测 n 个时间步长。但是我遇到了一个问题,即训练模型不能预测任何东西 - 只会“复制” X_test 数据。为方便起见,我重建 X_test 数据并使用从 model.predict() 返回的 y_test 数据绘制它:

因此,为了清楚起见,这个结果还包含“数据集价格”(来自数据集 [upper_train + timesteps:] 的纯数据)。
我找不到哪里出错了(或者这种方法可能不好?)所以我将不胜感激任何帮助!
