tensorflow - 喀拉斯 LSTM : how to predict beyond validation vs predictions?

标签 tensorflow machine-learning keras time-series lstm

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

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

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

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

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

# Future predictions
future_predictions = model.predict(?)

enter image description here

最佳答案

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

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

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

正如您所猜测的,您将输出添加到输入中,这就是您的预测可能出现分歧并放大不确定性的原因。

其他模型更稳定地预测遥远的 future 。

关于tensorflow - 喀拉斯 LSTM : how to predict beyond validation vs predictions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69753424/

相关文章:

python - 卷积层 - 定义输出 tensorflow

python - 值错误 : cannot reshape array of size 1048576 into shape (1024, 1024,3)

python - Tensorflow session 不执行函数

machine-learning - Torch CrossEntropyCriterion 错误

python - 为什么即使批量大小为 1 也会出现内存分配错误?

tensorflow - 使用 AWS Sagemaker 时,Keras Conv2D 层具有不同的输出

machine-learning - 神经网络评估和拓扑

machine-learning - scikit-learn 中的多层感知器

python - .tflite 模型(从 keras .h5 模型转换而来)始终以相同的概率预测同一类

python - 自定义 RMSE 与采用内置 Keras MSE 的根进行相同预测不同