gpt4 book ai didi

machine-learning - 这是使用状态 LSTM 神经网络预测时间序列的正确方法吗?

转载 作者:行者123 更新时间:2023-11-30 08:39:55 25 4
gpt4 key购买 nike

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

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

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

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

因此,我像这样准备训练数据(始终使用 100 值来预测下一个 10x_n 表示 X 中的第 n 个 元素):

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 中删除>,然后尝试训练模型并预测它们。最后,将预测值与观测值进行比较。

如有任何建议或意见,我们将不胜感激。

时间序列如下所示: enter image description here

最佳答案

你的问题确实很复杂。在我尝试回答这个问题之前,我将与您分享我的疑问,即使用 LSTM 来完成您的任务是否明智。您想要对看似相对简单的时间序列使用真正高级的模型(LSTM 能够学习真正复杂的模式)。而且 - 你的数据量非常小。老实说 - 我会首先尝试训练更简单、更容易的方法(例如 ARMAARIMA)。

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

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

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

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

关于machine-learning - 这是使用状态 LSTM 神经网络预测时间序列的正确方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42652526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com