Multi-Step Time Series Forecasting (多步时间序列预测)

不管现实多么惨不忍睹,都要持之以恒地相信,这只是黎明前短暂的黑暗而已。不要惶恐眼前的难关迈不过去,不要担心此刻的付出没有回报,别再花时间等待天降好运。真诚做人,努力做事!你想要的,岁月都会给你。Multi-Step Time Series Forecasting (多步时间序列预测),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

本文主要翻译自博客:https://machinelearningmastery.com/multi-step-time-series-forecasting/
有兴趣的童鞋可以上原地址查看英文版本~

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

以温度预测为例,考虑到过去7天的观测温度:

Time,	Temperature
1,		56
2,		50
3,		59
4,		63
5,		52
6,		60
7,		55

单步预测只需要在对时间步8(第8天)的气温进行预测:

Time,	Temperature
8,		?

而多预测可能需要对未来两天进行预测,如下所示:

Time,	Temperature
8,		?
9,		?

多步预测通常至少有四种策略:

  • Direct Multi-step Forecast Strategy (直接多步预测策略)
  • Recursive Multi-step Forecast Strategy (递归多步预测策略)
  • Direct-Recursive Hybrid Multi-step Forecast Strategie (直接递归混合多步预测策略)
  • Multiple Output Forecast Strategy (多输出预测策略)

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

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

例如:

prediction(t+1) = model1(obs(t-1), obs(t-2), ..., obs(t-n))
prediction(t+2) = model2(obs(t-2), obs(t-3), ..., obs(t-n))

首先,当要预测的时间步较多时,为每个时间步应用一个模型会带来沉重的计算和维护负担。
其次,因为使用了不同的独立模型,无法对预测时间步之间的相关性进行建模。而在时间序列中,第2天的预测往往是一定程度上依赖于第1天的预测结果的。

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))

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

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

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

例如:

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

递归策略和直接策略结合起来可以一定程度克服每种策略的局限性。

4. Multiple Output Strategy(多输出预测策略)

多输出策略主要指开发一个能够一次性预测整个预测序列的模型。

对于预测未来两天的温度,我们将开发一个模型,并将其作为一个操作来预测未来两天的温度。

例如:

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

多输出模型更复杂,因为它们可以学习输入和输出之间以及输出之间的依赖关系。更复杂可能意味着训练速度较慢,需要更多数据来避免过度拟合问题。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/162883.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!