我正在KERAS中使用LSTM进行滚动窗口的时间序列预测。将第一步视为验证数据(我 我正在KERAS中使用LSTM进行滚动窗口的时间序列预测。将第一步视为验证数据(我没有将验证数据用于提前
我正在KERAS中使用LSTM进行滚动窗口的时间序列预测。将第一步视为验证数据(我没有将验证数据用于提前停止),并将时期数设置为40,单位数设置为10,还使用了{ {1}}训练样本和1000功能,验证损失的形状有点奇怪。验证损失从低值开始,然后增加并再次减少。为什么我们有这种行为?我应该指出,这不是唯一的行为,但是大多数模型遵循钟形验证损失(如您所见,棕线遵循常见的验证损失形状)。可能是,我认为如果我添加了早期停止功能,则效果不佳。另外,我正在使用10来对功能进行归一化,并在不进行归一化的情况下使用输出。 LSTM的激活函数为StandardScaler,输出层具有tanh,因为预测值始终为正,我正在使用21个特征滞后。
- 在这些图中,每一行都与预测中的一个步骤(滚动窗口)相关(我正在通过添加最新数据来在每个步骤中训练模型)。
Ps。。如果仅在两个时期之后停止预测,则预测值将接近于零。我应该提到的是,我的时间序列中的大多数值都是新的零(介于0和1之间)和一些罕见的跳跃(例如10、50或100)。在这里,棕色表示数据中的一个跳转。但是,您可能知道,此值对MSE产生巨大影响。这就是为什么大多数时候,线性模型比LSTM更好的原因,因为它无法检测到巨大的跳跃,因此测试数据的平均MSE更高。