本文主要翻译自博客: 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))

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

我们关于“ 文章介绍了该软件包,并提供了背景信息。 Pytorch Forecasting旨在通过神经网络简化实际案例和研究的最新时间序列预测。目标是为高级专业人员提供最大程度的灵活性,并为初学者提供合理的默认值的高级API。具体来说,该软件包提供了 一个时间序列数据集类,它抽象化处理变量转换,缺失值,随机子采样,多个历史记录长度等。 基本模型类,提供时间序列模型的基本训练,以及在张量板中的记录和通用可视化,例如实际与预测以及依存关系图 用于时间序列预测的多种神经网络体系结构已针对实际部署进行了增强,并具有内置的解释功能 多地平线时间序列指标 Ranger优化器,用于更快的模型训练 该程序包基于构建,可以直接使用CPU,单个和多个GPU进行培训。 如果您在Windows上工作,则需要先使用以下命令安装PyTorch: pip install torch -f https
Time Series Forecasting Using GRU Neural Network with Multi-lag After Decomposition Abstract 本文提出的方法针对短期预测问题。 网络分为两部分:(1)分解原始时间序列:FCD(Filtering Cycle Decomposition);(2)预测子序列:GRU(Gated Recurrent Unit ...
多步骤提前预测 该项目的目的是研究时空数据的多步提前预测中的两个方面: 动态模型与静态模型:我们将比较几种静态模型和动态模型的性能。 动态模型都具有递归神经网络作为其体系结构的一部分。 在这些模型中,先前时间步长中的时间序列值用于导出循环网络的“状态”。 然后,将循环网络的输出扩充到数据中的其他要素,以形成完整的要素集。 相反,在静态模型中,没有递归的体系结构,并且先前时间步长上的时间序列值直接增加到其他特征上。 数据拆分方法:我们将研究将数据拆分为训练和验证模型对测试数据性能的影响的不同方法的效果。 与其他情况相比,为时间序列数据形成验证集更具挑战性。 具体来说,许多机器学习任务可以看作是插值,其中训练和测试集中的特征范围是相似的。 另一方面,时间序列预测(特别是多步提前预测)是一项外推任务。 我们要提出的问题是,在形成验证集时应考虑到这一点。 我们将研究形成验证集的不同方法。 < groupId>com.github.signaflo</ groupId> < artifactId>timeseries</ artifactId> < version>0.4</ version> </ dependency> Gradle compile
使用LSTM进行时间序列预测 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界...
### 回答1: informer是一种能够高效预测长时间序列的模型,它采用了超越传统transformer模型的设计和算法。相比传统transformer模型,informer模型在处理长序列时更加高效,同时能够保证预测的准确性。这种模型在处理时间序列预测问题时表现出色,是一种非常有前景的技术。 ### 回答2: Informer是一种新型的长序列时间序列预测模型,它具有比传统模型更高的预测准确性和更高的时间效率。Informer利用了Transformer结构和多种技术创新来提高预测效率,包括自适应位置编码、多通道嵌入、掩码多头自注意力机制等。这些创新技术能够更好地捕捉时间序列性质,并且在长序列预测时能够处理长时间延迟和缩放问题。 Informer不仅仅是一个预测模型,它还可以进行可视化分析,包括预测结果可视化、特征重要性分析和多目标优化等。Informer的预测结果可视化可以帮助用户更好地理解预测结果,从而更好地指导业务决策。特征重要性分析可以帮助用户了解哪些特征对预测结果的影响最大,从而更好地优化模型。多目标优化可以对多个指标进行优化,从而更好地满足不同业务需求。 Informer已经得到了广泛的应用,并且在多个真实数据集上进行了测试和验证。实验结果表明,Informer不仅在准确性和效率方面优于传统模型,在其他方面也有更好的表现,如稳定性和抗噪声性。Informer的性能优势为各类业务提供了更好的决策支持,包括能源、金融、物流等各个领域。相信Informer会在未来带来更多的创新和应用。 ### 回答3: Informer是一种新型的时间序列预测模型,它专门针对长序列的预测任务。由于传统的时间序列预测方法在处理长序列时容易出现过拟合或者欠拟合的问题,因此Informer采用了多项创新技术,从而可以高效地进行长序列的时间序列预测。 首先,Informer利用了masking和probabilistic forecasting的技术,来处理长序列中的遗漏数据问题和异常值问题。这样可以避免过拟合或欠拟合的现象,使预测结果更加准确和可靠。 其次,Informer使用了一个attention-based的encoder-decoder结构,来增强模型的学习能力。由于attention机制可以很好地表示序列中的长程依赖关系,因此Informer可以在处理长序列时保持高效的性能。 最后,Informer还采用了一个多时间尺度的架构,来处理时间序列中的多个层次上的波动。这种模型可以同时捕捉长周期和短周期的波动,并做出更为准确的预测。 总之,Informer是一种高效的时间序列预测模型,特别适合处理长序列的预测任务。它不仅具有高度的准确性和可靠性,而且具有高效的计算速度和强大的学习能力。对于需要进行时间序列预测的领域,Informer将是一种非常有价值的工具。
一定要坚持创作更多高质量博客哦, 小小红包, 以资鼓励, 更多创作活动请看: 毕业季征文·未来可期: https://activity.csdn.net/creatActivity?id=10429?utm_source=csdn_ai_ada_redpacket 上传ChatGPT/计算机论文等资源,瓜分¥5000元现金: https://blog.csdn.net/VIP_Assistant/article/details/130196121?utm_source=csdn_ai_ada_redpacket 如何系统学习一门it技术: https://activity.csdn.net/creatActivity?id=10458?utm_source=csdn_ai_ada_redpacket 全部创作活动: https://mp.csdn.net/mp_blog/manage/creative?utm_source=csdn_ai_ada_redpacket sgd clf-linear_ model. SCDClassifier() sgd_clf. fit(X, Y) sgd_clf.predict ([ [1, 2, 3, 4]]) array([2]) 这个可以问问是什么意思吗表情包表情包表情包
Python之Networkx详解 small dick: 请问博主这种第三方库的中文版文档是怎么打开的? Python之Networkx详解 m0_68618629: 我也有这个问题表情包 基于gunicorn部署flask项目 酒酿小圆子~: 直接运行app.py即可启动服务,默认发布到 localhost:5000 地址,再通过接口传参。