代码之家  ›  专栏  ›  技术社区  ›  BigBadMe

LSTM RNN的有趣结果:训练和验证数据的滞后结果

  •  0
  • BigBadMe  · 技术社区  · 7 年前

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

    当我用训练数据测试我的模型时,我注意到模型的输出与实际数据相比是一个完美的拟合,它只是滞后了 确切地

    enter image description here

    当我把数据移动4个月,你会发现这是一个完美的契合。

    enter image description here

    我可以很明显地理解为什么训练数据会非常接近,因为它在训练期间就已经看到了这一切——但是为什么4个月后呢?

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

    enter image description here

    时移:

    enter image description here

    也

    为了从验证数据生成这个输出,我输入了一个200个时间步的序列,但是数据序列中没有说明4个月内价格变化的百分比-它是完全断开的,所以它是怎样的 所以

    2 回复  |  直到 7 年前
        1
  •  0
  •   r poon    7 年前

    1. 如果您没有提供一个时滞X输入数据集(lagged t-k,其中k是时间步长),那么基本上您将在培训阶段向LSTM输入类似今天的收盘价,以预测相同的今天收盘价。该模型将(过度拟合)和行为完全符合已知的答案(数据泄漏)

    2. 所以预测值会有4个月的偏移

        2
  •  -1
  •   BigBadMe    7 年前

    考虑到市场在4个月内通常只在0-3%(正负)的幅度内波动,这意味着我的预测总是会与当前价格密切相关,只是有4个月的滞后。

    因此,在每一天,预测的产量都会被重新计算,所以模型线永远不会偏离实际值太远;应该是一样的,但是在0-3%的范围内(正负)。

    实际上,图形并不重要,而且它也不能反映出我使用输出的方式,所以我将放弃尝试获得可视化表示,而集中精力寻找不同的指标来降低验证损失。