首页 > 解决方案 > LSTM RNN 的有趣结果:训练和验证数据的滞后结果

问题描述

作为 RNN/LSTM(无状态)的介绍,我正在训练一个包含 200 天先前数据(X)序列的模型,包括每日价格变化、每日交易量变化等,并且对于标签/YI 有 % 价格4个月后从当前价格变为当前价格。基本上我想估计市场方向,而不是 100% 准确。但我得到了一些奇怪的结果......

然后,当我使用训练数据测试我的模型时,我注意到模型的输出与实际数据相比非常合适,它恰好滞后了4个月:

在此处输入图像描述

当我将数据移动 4 个月时,您会发现它非常适合。

在此处输入图像描述

我显然可以理解为什么训练数据会非常吻合,因为它在训练期间已经看到了这一切——但为什么会滞后 4 个月?

它对验证数据做同样的事情(注意我用红色框突出显示的区域以供将来参考):

在此处输入图像描述

时移:

在此处输入图像描述

它不像您期望的那样像训练数据那样紧密,但仍然接近我的喜好 - 我只是不认为它可以如此准确(以红色矩形中的小光点为例)。我认为该模型充当了一个幼稚的预测器,我只是无法弄清楚它是如何/为什么会这样做的。

为了从验证数据中生成这个输出,我输入了一个包含 200 个时间步长的序列,但是数据序列中没有任何内容可以说明 4 个月内的 %price 变化 - 它完全断开连接,那么它是如何准确的呢?4 个月的滞后显然是另一个指标,表明这里有问题,我不知道如何解释,但我怀疑这两者是相关的。

标签: neural-networkkeraslstmrnntraining-data

解决方案


我试图根据一些一般的基本概念来解释观察结果:

  1. 如果您不提供时间滞后的 X 输入数据集(滞后 tk,其中 k 是时间步长),那么基本上您将向 LSTM 提供与今天的收盘价类似的数据,以预测相同的今天收盘价......在训练阶段. 该模型将(过度拟合)并且行为与已知答案完全相同(数据泄漏)

  2. 如果 Y 是预测的百分比变化(即 X * (1 + Y%) = 4 个月的未来价格),则预测的现值 Yvalue 实际上只是被 Y% 折现的未来,因此预测值将有 4 个月的偏移


推荐阅读