Keras LSTM:如何超越验证与预测进行预测?

Keras LSTM: how to predict beyond validation vs predictions?

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

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

但是,如果模型是准确的,您如何做出超出验证期结束的预测?

以下仅接受以与训练数据相同的方式转换的数据,但对于超出验证期的预测,您没有任何输入数据可提供给模型。那么,人们是如何做到这一点的呢?

# Predictions vs validation
predictions = model.predict(transformed_validation)

# Future predictions
future_predictions = model.predict(?)

你必须把你的数据分解成训练和测试,然后适应你的模式。最后,你做出这样的预测。

future_predictions = model.predict(X_test)

查看下面的 link 了解所有详细信息。

https://towardsdatascience.com/lstm-time-series-forecasting-predicting-stock-prices-using-an-lstm-model-6223e9644a2f

要预测第 i 个值,您的 LSTM 模型需要最后 N 个值。 所以如果你想预测,你应该用每个预测来预测下一个。

换句话说,你必须循环类似

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

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

其他模型预测未来更稳定。