当前位置: 首页 > news >正文

【数据挖掘】时间序列预测-时间序列预测策略

时间序列预测策略

      • (1)单步预测与多步预测
      • (2)直接多步预测
      • (3)递归多步预测
      • (4)直接+递归的混合预测
      • (5)多输入多输出预测

(1)单步预测与多步预测

  • 单步预测:每次预测时,输入窗口仅预测未来一个值。

  • 多步预测:每次预测时,输入窗口预测未来n个值(也叫n步)。

单步预测和多步预测都是时间序列预测中常见的算法,根据其原理演化出了很多种优秀的算法,本节我们介绍四种非常实用的算法。

在做时间序列预测的时候,我们往往会预测未来多个时间步。但是,我们又没有未来的数据做训练,这时候就会引入一个概念:

  • N阶滞后特征:训练和预测数据用到了N天之前的数据特征

举个例子:假设我们有10天的数据,现在要预测未来3天的数据。我们可以通过构造N阶滞后特征来实现这个目标。

已知序列:[1,2,3,4,5,6,7,8,9,10],目标序列:[11,12,13]

单步预测:构造1阶滞后特征lag(t-1)作为训练数据,当前已知序列作为训练目标。下表中,绿色区域为训练过程,黄色区域为预测过程。当模型训练完成后,用第10天的数据可以预测第11天的数据,第11天预测第12天,第12天预测第13天。

在这里插入图片描述

多步预测:构造多输出模型,一次预测3个未来值。下图示例中input长度选取为3,实际应用中input长度通常远大于output长度。

在这里插入图片描述

参考文档:时间序列:多步预测的方法以及序列问题的分类

(2)直接多步预测

定义:直接多步预测(Direct Multi-Step Forecasting),构建n个模型预测未来n个值,每个模型预测1个值。这种方法本质是一种单步预测法。

我们继续用之前的示例模型:已知序列:[1,2,3,4,5,6,7,8,9,10],目标序列:[11,12,13]。

为了预测3个时间点的数值,我们需要构建3个模型,分别预测3个数值。

model1:[1,2,3,4,5,6,7,8,9,10],[11],构建1阶滞后序列训练模型

model2:[1,2,3,4,5,6,7,8,9,10],[12],构建2阶滞后序列训练模型

model3:[1,2,3,4,5,6,7,8,9,10],[13],构建3阶滞后序列训练模型

3个模型的训练过程如下所示:

在这里插入图片描述

算法优点:

  • 直接多步预测能够直接预测未来的多个步骤,无需依赖单步预测的结果。这意味着它可以快速给出多步的预测值,无需进行多次迭代或叠加训练。
  • 直接多步预测不依赖单步预测的结果,因此可以避免由于单步预测误差累积而导致的长期预测精度下降的问题。

算法缺点:

  • 直接多步预测法需要为每个预测步长训练一个模型,这意味着如果预测步长很长,那么需要训练的模型数量会非常多,这增加了计算成本和模型管理的复杂性。

参考文档:时间序列多步预测的五种策略

(3)递归多步预测

定义:递归多步预测(Recursive Multi-Step Forecasting),用单个模型进行训练,通过使用模型已预测出的时间步的值作为输入,来预测下一个时间步的值,这个过程是递归进行的。

我们继续用之前的示例模型:已知序列:[1,2,3,4,5,6,7,8,9,10],目标序列:[11,12,13]。

预测3个时间点的数值,我们只需构建1个模型,来递归预测3个未来数值。

当序列数据[8,9,10]预测出第11个数据值时,我们需要将这个预测值当做特征[9,10,11]去预测第12个数据。以此类推,递归迭代,直到预测过程全部完成。

模型的训练过程如下所示:

在这里插入图片描述

算法优点:

  • 递归多步预测只需要建立单步预测模型,不需要考虑复杂的多步预测关系式。这种方法使得预测的实现过程相对简单。
  • 递归多步预测通过利用时间序列数据之间的相关性,使用前一个时间步的预测结果来对下一个时间步进行预测,这有助于捕捉时间序列数据中的动态变化。

算法缺点:

  • 递归多步预测的主要缺点是误差累积。由于它是基于之前步骤的预测结果来进行下一步的预测,因此任何一步的预测误差都会被带入到后续的预测中,导致误差的累积。随着预测步数的增加,误差累积效应会变得更加严重,从而影响预测结果的准确性。

(4)直接+递归的混合预测

定义:直接+递归的混合预测(Direct-Recursive Hybrid Forecasting),结合直接策略和递归策略,构建n个模型预测未来n个值,但是每个模型都可以使用上一个模型预测出的结果继续预测。n个模型可以是同构的(相同的lag),也可以是异构的(不同的lag)。

我们继续用之前的示例模型:已知序列:[1,2,3,4,5,6,7,8,9,10],目标序列:[11,12,13]。

我们构建了3个模型(异构模型)。

model1(用1阶滞后特征训练),预测出的第11个点数值,作为model2(用2阶滞后特征训练)的训练数据,预测出的第12个点数值,作为model3(用3阶滞后特征训练)的训练数据,继续预测第13个点的数值。

在这里插入图片描述

算法优点:

  • 直接多步预测方法虽然避免了递归方法中因使用预测值作为输入而导致的误差累积问题,但递归方法能够利用时间序列的相关性。混合预测方法通过结合两者的特性,可以在一定程度上减少误差累积,特别是在需要预测多个时间步长时。
  • 递归方法通过利用前一个时间步的预测结果来预测下一个时间步,从而能够充分利用时间序列的相关性。混合预测方法保留了这一特性,使得预测结果更加准确。

算法缺点:

  • 混合预测方法需要同时训练直接预测模型和递归预测模型,这增加了模型的复杂度。在实际应用中,可能需要更多的计算资源和时间来训练和优化模型。

(5)多输入多输出预测

定义:多输入多输出预测MIMO(Multiple Input Multiple Output),在一个模型里输出多个预测值,其本质是一种多输出模型。

我们继续用之前的示例模型:已知序列:[1,2,3,4,5,6,7,8,9,10],目标序列:[11,12,13]。

我们构建了1个模型,3个输入特征,3个输出预测值。

在这里插入图片描述

算法优点:

  • 由于模型能够同时预测多个未来的数值,因此可以显著提高预测的效率。这对于需要快速响应或处理大量数据的场景非常有用。
  • 在多步预测中,传统的递归预测方法可能会因为每一步的预测误差累积而导致预测结果逐渐偏离真实值。而多输出序列预测算法可以一次性预测多个时间点的值,从而减少了误差累积的可能性。

算法缺点:

  • 与单步预测相比,多输出序列预测算法需要同时处理多个时间点的预测任务,因此计算复杂度通常较高。这可能导致预测速度变慢,尤其是在处理大规模数据集时。
  • 为了训练一个准确的多输出序列预测模型,通常需要大量的历史数据来捕捉时间序列的复杂性和动态性。如果数据量不足或质量不高,可能会导致预测结果不准确。
http://www.xdnf.cn/news/172945.html

相关文章:

  • Kubernetes/KubeSphere 安装踩坑记:从 context deadline exceeded 到成功部署的完整排障笔记
  • 同样开源的自动化工作流工具n8n和Dify对比
  • Docker compose 部署微服务项目(从0-1出发纯享版无废话)
  • 代数拓扑和黎曼几何有什么联系吗?
  • 【深度好文】4、Milvus 存储设计深度解析
  • 公网域名如何解析到内网ip服务器?自己域名映射外网访问
  • 3. 使用idea将一个git分支的部分提交记录合并到另一个git分支
  • Golang | 集合求交
  • 常用的性能提升手段--提纲
  • 二叉树的前序、中序和后序遍历:详解与实现
  • 非计算机专业如何利用AI开展跨学科和交叉研究
  • 智能硬件行业售后服务管理:提升客户体验的关键所在
  • Java:网络编程
  • CesiumEarth更新至1.14.0版本,重新设计了图层设置页面,优化了许多界面交互问题
  • K8S Pod 常见数据存储方案
  • Lua 第12部分 日期和时间
  • PH热榜 | 2025-04-27
  • HTML倒数
  • java 类的实例化过程,其中的相关顺序 包括有继承的子类等复杂情况,静态成员变量的初始化顺序,这其中jvm在干什么
  • xe-upload上传文件插件
  • WPF常用技巧汇总 - Part 2
  • Qt项目全局设置UTF-8编码方法(MSVS编译中文报错解决办法)
  • 新能源汽车运动控制器核心芯片选型与优化:MCU、DCDC与CANFD协同设计
  • 设计一个新能源汽车控制系统开发框架,并提供一个符合ISO 26262标准的模块化设计方案。
  • Java高频常用工具包汇总
  • [特殊字符]实战:使用 Canal + MQ + ES + Redis + XXL-Job 打造高性能地理抢单系统
  • Spark Mllib 机器学习
  • 第二章,网络类型及数据链路层协议
  • SMART:大模型在关键推理步骤辅导小模型,在保持高推理效率的同时,显著提升小模型的推理能力!!
  • python合并一个word段落中的run