【问题标题】:Is this the right way to predict a time series with the stateful LSTM neural network?这是使用有状态 LSTM 神经网络预测时间序列的正确方法吗?
【发布时间】:2017-07-27 21:51:30
【问题描述】:

我正在使用 LSTM 神经网络(有状态)进行时间序列预测。

我希望有状态的LSTM能够捕捉到隐藏的模式并做出令人满意的预测(导致时间序列变化的物理规律尚不清楚)。

我有一个时间序列X,长度为1500(实际观测数据),我的目的是预测未来100

我想预测下一个10 会比预测下一个100 更有希望(对吗?)。

所以,我这样准备训练数据(总是使用100 值来预测下一个10x_n 表示X 中的n-th 元素):

shape of trainX: [140, 100, 1]
shape of trainY: [140, 10, 1]
---
0: [x_0,  x_1, ...,  x_99]  -> [x_100, x_101, ..., x_109]
1: [x_10, x_11, ..., x_109] -> [x_110, x_111, ..., x_119]
2: [x_20, x_21, ..., x_119] -> [x_120, x_121, ..., x_129]
                     ...
139: [x_1390, x_1391, ..., x_1489] -> [x_1490, x_1491, ..., x_1499]
---

训练结束后,我想用模型用[x_1400 - x_1499]预测下一个10[x_1500 - x_1509],然后用[x_1410 - x_1509]预测下一个10[x_1510 - x_1519]

这是正确的方法吗?

大量阅读文档和示例后,我可以训练模型并进行预测,但结果似乎并不令人满意。

为了验证该方法,我假设最后的100 (x_1400 - x_1499) 值未知,并将它们从trainXtrainY 中删除,然后尝试训练模型并预测它们。最后,将预测值与观测值进行比较。

任何建议或cmets将不胜感激。

时间序列如下所示:

【问题讨论】:

  • 我只是好奇,这是气候数据吗?
  • 没有。这是天体物理数据。 :) @RaphaelRoth
  • 我首先想到的是 TSI(总太阳辐照度)或类似的东西
  • 非常接近!我很惊讶你竟然知道 TSI!因为我目前的研究与TSI有关。你是太阳物理学专业的吗? :) @RaphaelRoth
  • 我在博士期间曾在相关领域工作,我也尝试使用简单的 AR 模型“预测”TSI:clim-past.net/9/1879/2013,另见aanda.org/articles/aa/full_html/2014/02/aa23391-14/…

标签: machine-learning neural-network keras lstm stateful


【解决方案1】:

你的问题真的很复杂。在我尝试回答之前 - 我将与您分享我对使用 LSTM 来完成您的任务是否明智的疑问。您想使用一个非常高级的模型(LSTM 能够学习非常复杂的模式)来处理一个看起来相对容易的时间序列。此外 - 您的数据量非常小。老实说——我会先尝试训练更简单的方法(比如ARMAARIMA)。

回答您的问题 - 如果您的方法很好 - 这似乎是合理的。其他合理的方法是预测所有100 步骤或例如50 两次。使用10 步骤,您可能会遇到错误累积 - 但它仍然可能是一个好方法。

正如我之前提到的 - 我宁愿尝试更简单的 ML 方法来完成此任务,但如果您真的想使用 LSTM 您可以通过以下方式解决此问题:

  1. 定义元参数,例如您要预测的前进步数、输入网络的大小。
  2. 尝试使用例如网格搜索以找到此元参数的最佳值。使用 k-fold 交叉验证评估每个设置。
  3. 使用最佳元参数设置重新训练最终模型。

您的数据量相对较少,因此您可以轻松找到超参数的最佳值。这还将向您展示您的方法是否良好 - 只需检查最佳解决方案提供的结果。

【讨论】:

  • 非常感谢。我之所以要使用 stateful LSTM 是因为它还没有用于这个问题,而ARMAARIMA、普通神经网络等其他方法已经被以前的研究人员使用过。之前的所有结果都不是很令人满意。所以,这个时间序列的预测仍然是一个未解决的问题。
  • 众所周知,这个时间序列的变化由长期和短期两种原因共同支配,但具体规律尚不清楚。我希望 LSTM 的long short-term memory 能力能够捕捉规律并预测未来。也许我太乐观了? :)
  • 时间序列看似简单,但科学家仍无法预测下一个峰值(最大值和日期)。注意x轴是时间,y轴是物理量(数值从0到几百)。
  • 感谢关于如何找到最佳元参数的建议。 :)
  • 如果您不介意 - 我将不胜感激并接受答案。
猜你喜欢
  • 1970-01-01
  • 2020-09-15
  • 2017-08-02
  • 2022-12-23
  • 2013-02-22
  • 2014-08-27
  • 1970-01-01
  • 2014-07-02
  • 1970-01-01
相关资源
最近更新 更多