Keras LSTM: 如何进行超出验证期的预测?

在处理时间序列预测时,我看到大多数人在使用LSTM模型时遵循以下步骤:

  1. 获取、清理和预处理数据
  2. 提取验证数据集,以便将来与模型预测进行比较
  3. 初始化并训练LSTM模型
  4. 使用验证数据集的副本,进行与训练数据完全相同的预处理
  5. 使用训练好的模型对转换后的验证数据进行预测
  6. 评估结果:预测与验证数据的对比

然而,如果模型准确无误,如何进行超出验证期的预测呢?

以下代码只接受与训练数据相同方式转换的数据,但对于超出验证期的预测,你没有可供模型使用的输入数据。那么,人们是如何做的呢?

# 预测与验证
predictions = model.predict(transformed_validation)
# 未来预测
future_predictions = model.predict(?)

enter image description here


回答:

为了预测第i个值,你的LSTM模型需要最近的N个值。因此,如果你想要进行预测,你应该使用每个预测来预测下一个值。

换句话说,你需要循环执行类似以下的操作:

prediction = model.predict(X[-N:])
X.append(prediction)

正如你所猜测的,你将输出添加到输入中,这就是为什么你的预测可能会发散并放大不确定性。

其他模型在预测远期未来时可能更稳定。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注