如何使用TensorFlow库实现时间序列的未来时段预测
多步时间序列预测无可用输入特征的解决方案
1. 递归预测法
- 运行逻辑:逐次输出单步预测结果,将预测得到的数值反向计算出差分特征,作为下一步预测的输入。比如要得到5个月后的预测值,先预测第1个月的结果,用该结果和历史最后一个月的真实值计算差分特征,输入模型预测第2个月的结果,重复这个过程直到输出第5个月的预测值。
- 适用场景:预测步长不固定、短周期预测的场景,不用调整原有训练好的模型结构,直接复用即可。缺点是预测步长越长,误差累积越严重。
2. 直接预测法
- 运行逻辑:调整模型的训练逻辑,训练时直接将未来N步的数值作为预测目标,比如你需要预测5个月后的数值,就把模型的输出维度设置为5,同时训练标签构造为每个样本对应未来5个月的所有数值。预测时只需要输入已知的历史序列,就能一次性得到未来5个月的全部预测结果,不需要中间计算特征的步骤。
- 适用场景:预测步长固定的场景,不会出现误差累积的问题,缺点是每变更一次预测步长就需要重新训练对应的模型。
3. 混合预测法
- 运行逻辑:结合前两种方法的优势,比如把5个月的预测步长拆成2段,第一段直接输出前2个月的结果,把前2个月的结果作为特征输入第二个模型直接输出后3个月的结果,平衡误差累积程度和模型训练成本。
实操注意事项
- 差分特征的逆转换逻辑要和训练阶段的构造逻辑完全对应,预测得到的差分值要先转换回原始数值域,再进行后续的特征计算或者结果输出,避免出现数值偏移。
- 使用TensorFlow框架可以直接调用
timeseries_dataset_from_array工具快速构造多步预测的训练数据集,不需要手动拼接历史特征和预测标签,能减少构造数据时的逻辑错误。
学习建议
- 先掌握单步、多步、多变量三类时间序列预测的基础范式,再根据业务需求优化模型结构
- 可以先基于公开的销量、气象等标准时间序列数据集跑通多步预测全流程,再迁移到自己的业务场景,能快速排查逻辑问题。
内容的提问来源于stack exchange,提问作者AAA
相关产品推荐
相关产品推荐

