相关文章推荐
正直的乌龙茶  ·  javascript - ...·  2 年前    · 
勤奋的洋葱  ·  图解kubernetes ...·  2 年前    · 
爱运动的移动电源  ·  基于lerna和yarn ...·  2 年前    · 

多步预测方法

(1)Direct Multi-step Forecast Strategy (直接多步预测策略)

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

(3)Direct-Recursive Hybrid Strategies(直接递归混合多步预测策略)

单步预测与多步预测的联系

通常来说, 时间序列 预测描述的是在下一个时间步预测出的值,这被称为单步预测。但是有些情况下,预测任务需要预测出未来多个时间步的值,那这种情况就被称为多步预测。

(1)多步预测的预测误差会随着步数的增加而累积,多步预测的结果也会越来越不准。但是单步预测很多时候不会有这种误差累积。

(2)多步预测可以用于预测“不存在”的数据,比如如果想预测第101到120个数据点,这时候便是使用多步预测了。

多步预测方法

以下为温度预测为例子:

(1)Direct Multi-step Forecast Strategy (直接多步预测策略)

直接法为每个预测时间步开发一个单独的模型。
在预测未来两天的温度的情况下,我们将学习一个独立的模型用于预测第一天温度,另一个独立的模型来预测第二天的温度。

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

递归策略则多次使用一步模型,前一个时间步的预测被用作对下一个时间步进行预测的输入
在预测未来两天的气温时,我们将开发一个一步预测模型。该模型将先用于预测第1天,然后将第1天的预测结果当做观察输入,以便预测第2天。

prediction(t+1) = model(obs(t-1), obs(t-2), ..., obs(t-n))
prediction(t+2) = model(prediction(t+1), obs(t-1), ..., obs(t-n-1))

        由于使用预测值来代替观测值,递归策略会造成预测误差不断累积,随着预测时间范围的增加,递归多部预测策略的性能可能会迅速下降。我们多步预测大部分都是使用此方法!

(3)Direct-Recursive Hybrid Strategies(直接递归混合多步预测策略)

        直接和递归策略可以结合起来,以结合这两种方法的优点。
        例如,可以为每个要预测的时间步构造一个单独的模型,但是每个模型可以使用模型在前一个时间步所做的预测作为输入值。
        对于预测未来两天的温度,可以使用两个模型,分别是model1和model2。在进行未来第2天的温度预测时,第一个模型的输出被用作第二个模型的输入。

(1)全部数据用于多步预测:这就是上述说的,要预测“不存在”的数据。在软件中指定想预测的长度,点击开始就可以了。

(2)划分“训练-测试集”的多步预测:大致相当于上述举的例子,即将全部数据按照一定比例划分成训练集和测试集,然后多步预测出于测试集相同长度的数据,并画图对比,计算若干评估指标。这种模式下结果往往并不太理想。

(3)划分“训练-测试集”的单步预测:将全部数据按照一定比例划分成训练集和测试集,然后单步预测出于测试集相同长度的数据,并画图对比,计算若干评估指标。这种模式下预测精度较高,在某些趋势性强的数据中,预测结果可能会表现出“滞后性”。

该存储库包含两个用于基于Transformer的时间序列预测的 Pytorch 模型。 Transformer-singlestep.py 包含单步预测模型 Transformer-multistep.py 包含多步预测模型 这是单步预测模型的输出,该模型已在每日最低温度数据集上训练了 100 个时期。
本文的目的是提供代码示例,并解释使用python和TensorFlow建模时间序列数据的思路。 本文展示了如何进行多步预测并在模型中使用多个特征。 本文的简单版本是,使用过去48小时的数据和对未来1小时的预测(一步),我获得了温度误差的平均绝对误差0.48(中值0.34)度。 利用过去168小时的数据并提前24小时进行预测,平均绝对误差为摄氏温度1.69度(中值1.27)。 所使用的特征是过去每小时的温度数据、每日及每年的循环信号、气压及风速。 使用来自https://openweathermap.org/
输入窗口 全部使用 真实值作为 输入窗口,这种情况是只预测未来一个值的时候这个情况的。 预测未来第一个值的时候输入窗口使用全部真实值,预测后面n-1 个的时候,预测窗口将包含有预测值,这种情况是单步预测预测未来的多个值的时候。 2. 多步预测 所谓多步预测,就是每—次预测的时候 输入窗口 预测 未来n个值(也叫n步)。 多步预测的策略: 只预测未来一次,即只预测一个n输入的n个输出,n是滑动窗口
单步预测适用于以下场景: 1. 当我们只需要预测下一个时间步的数值时,单步预测是最简单和直接的方法。 2. 当时间序列数据的趋势和季节性变化较为平稳,且未来的变化与过去的数据关联较强时,单步预测通常能够取得较好的结果。 多步预测适用于以下场景: 1. 当我们需要预测未来多个时间步的数值时,多步预测可以提供更长期的预测结果。 2. 当时间序列数据存在复杂的非线性趋势、季节性变化或突发事件时,多步预测可以更好地捕捉这些特征,并提供更准确的预测结果。 需要注意的是,多步预测相对于单步预测更加困难,因为每个时间步的预测结果都会受到前面预测结果的影响,累积误差可能会增加。因此,在选择单步预测还是多步预测时,需要根据具体问题和数据特征来进行判断。