pytorch实战(五)——时间序列多步预测的五种方法介绍

当需要根据已有的时间序列数据,预测未来多个时刻的状态时,被称之为时间序列多步预测。
时间序列多步预测有五种策略,分别为:
1、直接多步预测(Direct Multi-step Forecast)
2、递归多步预测(Recursive Multi-step Forecast)
3、直接递归混合预测(Direct-Recursive Hybrid Forecast)
4、多输出预测(Multiple Output Forecast)
5、seq2seq预测(seq2seq Forecast)
下面进行详细介绍。假设已知的时间序列数据为[1 2 3 4],需要预测紧跟其后的[x y]

1、直接多步预测(Direct Multi-step Forecast)

方法是训练两个模型,其中一个模型用于预测x,另一个模型用于预测y,即:
model1:[1 2 3 4]->[x]
model2:[1 2 3 4]->[y]
缺点主要有两个,第一个为需要为未来的每个状态建立相应的模型,计算负担较大,第二个为无法充分利用时间序列的相关性,即model1的预测结果无法被model2使用。

2、递归多步预测(Recursive Multi-step Forecast)

方法是训练一个固定的模型,按照递归的方法对x与y进行预测,其中的关键是,模型可以使用前一个时间步的预测结果来对下一个时间步进行预测,即:
[1 2 3 4]->[x]
[2 3 4 x]->[y]
优点是利用了时间序列的相关性。
缺点是将预测值作为观测值,会造成误差的累积,当需要预测的时间序列很长时,容易导致性能迅速下降。

3、直接递归混合预测(Direct-Recursive Hybrid Forecast)

该方法综合了直接多步预测和递归多步预测方法的特性。
训练两个模型,其中一个模型用于预测x,另一个模型用于预测y,需要注意的是,第二个模型可以利用第一模型的预测结果。
model1:[1 2 3 4]->[x]
model2:[2 3 4 x]->[y]

4、多输出预测(Multiple Output Forecast)

训练一个固定的模型,该模型的输出有两个值。更具体的来说,就相当于最后的dense层含有两个神经元,每个神经元就是一个值。
[1 2 3 4]->[x y]
优点是后一个时间步的预测和前一个时间步的预测是独立的,不会造成误差的累积。
缺点是,事实上,x和y应该是具有时序关系的,如果完全独立的预测他们的话,会造成信息的损失,引起误差。

5、seq2seq预测(seq2seq Forecast)

方法与多输出预测类似,都是训练一个固定的模型,该模型的输出有两个值。
[1 2 3 4]->[x y]
但是最大的不同是,该方法采用了如下图所示的seq2seq结构。
在这里插入图片描述
该结构采用了LSTM、attention+seq2seq、transformer、bert等网络结构,因此能够考虑输出的标签之间的序列依赖性,有效利用了预测值之间的时序关系,解决了多输出预测方法的缺陷,有利于提高预测精度。

  • 1
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值