tensorflow - Keras LSTM:如何预测超越验证与预测?
问题描述
在处理时间序列预测时,我看到大多数人在使用 LSTM 模型时都遵循以下步骤:
- 获取、清理和预处理数据
- 取出验证数据集以供将来与模型预测进行比较
- 初始化和训练 LSTM 模型
- 使用验证数据集的副本进行预处理,就像训练数据一样
- 使用经过训练的模型对转换后的验证数据进行预测
- 评估结果:预测与验证
但是,如果模型是准确的,您如何做出超出验证期结束的预测?
以下仅接受以与训练数据相同的方式转换的数据,但对于超出验证期的预测,您没有任何输入数据可提供给模型。那么,人们是如何做到这一点的呢?
# Predictions vs validation
predictions = model.predict(transformed_validation)
# Future predictions
future_predictions = model.predict(?)
解决方案
要预测第 i 个值,您的 LSTM 模型需要最后 N 个值。所以如果你想预测,你应该使用每个预测来预测下一个。
换句话说,您必须遍历类似
prediction = model.predict(X[-N:])
X.append(prediction)
正如您可以猜到的,您将输出添加到输入中,这就是您的预测可能会发散并放大不确定性的原因。
其他模型更稳定,可以预测遥远的未来。
推荐阅读
- javascript - TypeError:无法读取未定义的属性“合格”
- python - 和整数字段
- javascript - 图像不会在 p5.js 中加载
- flutter - Flutter:使用“响应式”设计时 Dismissible 的奇怪行为
- logstash - 使用 Logstash 将数据从 Postgres 导出到 ElasticSearch 给出 LoadError: no such file to load -- pg
- php - SAP Web 服务 PHP SoapClient 输入参数
- spring - 将 Dropzone.js 与 springboot 和 JSP 链接
- jwt - Blazor:重新加载页面时缺少授权标头
- https - ca 和 cert 的区别
- bluetooth - 为什么 BLE 的广告包有固定模式访问地址 (0x8E89BED6)