CEEMDAN +组合预测模型(Transformer - BiLSTM+ ARIMA)

目录

往期精彩内容:

前言

1 风速数据CEEMDAN分解与可视化

1.1 导入数据

1.2 CEEMDAN分解

2 数据集制作与预处理

3 基于CEEMADN的 Transformer - BiLSTM 模型预测

3.1 定义CEEMDAN-Transformer - BiLSTM预测模型

3.2 设置参数,训练模型

4 基于ARIMA的模型预测

4.1 介绍一个分量预测过程(其他分量类似)

5 结果可视化和模型评估

5.1 结果可视化

5.2 模型评估

代码、数据如下:


往期精彩内容:

时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较-CSDN博客

风速预测(一)数据集介绍和预处理-CSDN博客

风速预测(二)基于Pytorch的EMD-LSTM模型-CSDN博客

风速预测(三)EMD-LSTM-Attention模型-CSDN博客

风速预测(四)基于Pytorch的EMD-Transformer模型-CSDN博客

风速预测(五)基于Pytorch的EMD-CNN-LSTM模型-CSDN博客

风速预测(六)基于Pytorch的EMD-CNN-GRU并行模型-CSDN博客

CEEMDAN +组合预测模型(BiLSTM-Attention + ARIMA)-CSDN博客

CEEMDAN +组合预测模型(CNN-LSTM + ARIMA)-CSDN博客

前言

本文基于前期介绍的风速数据(文末附数据集),介绍一种综合应用完备集合经验模态分解CEEMDAN与混合预测模型(Transformer - BiLSTM + ARIMA)的方法,以提高时间序列数据的预测性能。该方法的核心是使用CEEMDAN算法对时间序列进行分解,接着利用Transformer - BiLSTM模型和ARIMA模型对分解后的数据进行建模,最终通过集成方法结合两者的预测结果。

风速数据集的详细介绍可以参考下文:

风速预测(一)数据集介绍和预处理-CSDN博客

1 风速数据CEEMDAN分解与可视化

1.1 导入数据

1.2 CEEMDAN分解

根据分解结果看,CEEMDAN一共分解出11个分量,我们大致把前7个高频分量作为Transformer - BiLSTM模型的输入进行预测,后4个低频分量作为ARIMA模型的输入进行预测

2 数据集制作与预处理

划分数据集,按照8:2划分训练集和测试集, 然后再按照前7后4划分分量数据

在处理LSTF问题时,选择合适的窗口大小(window size)是非常关键的。选择合适的窗口大小可以帮助模型更好地捕捉时间序列中的模式和特征,为了提取序列中更长的依赖建模,本文把窗口大小提升到24,运用CCEMDAN-Transformer - BiLSTM模型来充分提取前7个分量序列中的特征信息。

分批保存数据,用于不同模型的预测

3 基于CEEMADN的 Transformer - BiLSTM 模型预测

3.1 定义CEEMDAN-Transformer - BiLSTM预测模型

注意:

  • 输入维度为7,维度7维代表前7个分量

  • 输入形状为 torch.Size([64, 7, 48])

  • 在PyTorch中,transformer模型的性能与batch_first参数的设置相关,当batch_first为True时,输入的形状应为(batch, sequence, feature),这种设置在某些情况下可以提高推理性能。

在使用Transformer模型中的多头注意力时,输入维度必须能够被num_heads(注意力头的数量)整除。因为在多头注意力机制中,输入的嵌入向量会被分成多个头,每个头的维度是embed_dim / num_heads,因此embed_dim必须能够被num_heads整除,以确保能够均匀地分配给每个注意力头。

因为此时分解分量为7个,可以事先适当改变分量个数,或者对信号进行堆叠,使调整多头注意力头数能够与之对应整除的关系。本文采用对序列进行对半切分堆叠,使输入形状为[64, 14, 12]。

3.2 设置参数,训练模型

100个epoch,MSE 为0.00638,Transformer - BiLSTM预测效果良好,适当调整模型参数,还可以进一步提高模型预测表现。

注意调整参数:

  • 可以适当增加Transformer层数和隐藏层的维度,微调学习率;

  • 调整BiLSTM层数和维度数,增加更多的 epoch (注意防止过拟合)

  • 可以改变滑动窗口长度(设置合适的窗口长度)

保存训练结果和预测数据,以便和后面ARIMA模型的结果相组合。

4 基于ARIMA的模型预测

传统时序模型(ARIMA等模型)教程如下:

时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较_arima、es、holt、holt-winters-CSDN博客

数据加载,训练数据、测试数据分组,四个分量,划分四个数据集

4.1 介绍一个分量预测过程(其他分量类似)

第一步,单位根检验和差分处理

第二步,模型识别,采用AIC指标进行参数选择

第三步,模型预测

第四步,模型评估

保存预测的数据,其他分量预测与上述过程一致,保留最后模型结果即可。

5 结果可视化和模型评估

组合预测,加载各模型的预测结果

5.1 结果可视化

5.2 模型评估

由分量预测结果可见,前7个分量在Transformer - BiLSTM预测模型下拟合效果良好,分量9在ARIMA模型的预测下,拟合程度比较好,其他低频分量拟合效果弱一点,调整参数可增强拟合效果。

代码、数据如下:

往期精彩内容:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/329773.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里巴巴微服务治理框架的终极PK!

另外我的新书RocketMQ消息中间件实战派上下册,在京东已经上架啦,目前都是5折,非常的实惠。 https://item.jd.com/14337086.html​编辑https://item.jd.com/14337086.html “RocketMQ消息中间件实战派上下册”是我既“Spring Cloud Alibaba微…

Defi安全-Monox攻击事件Foundry复现

其它相关内容可见个人主页 Mono攻击事件的介绍见:Defi安全–Monox攻击事件分析–phalconetherscan 1. 前情提要和思路介绍 Monox使用单边池模型,创建的是代币-vCash交易对,添加流动性时,只需添加代币,即可进行任意代…

rke2 offline install kubernetes v1.26

文章目录 1. 准备2. 安装 ansible3. 基础配置3.1 配置 hosts3.2 安装软件包3.3 内核参数3.4 连接数限制3.5 关闭swap 、selinux、防火墙3.6 时间同步 4. RKE2 安装4.1 下载安装4.2 配置其他管理节点4.3 新增 worker 节点 1. 准备 7 台主机 主机名ipcpu内存diskos角色user密码…

解析大语言模型LLM的幻觉问题:消除错觉、提高认知

文章目录 前言一、幻觉介绍二、幻觉产生的原因三、幻觉的现象四、幻觉的分类五、幻觉解决方案六、幻觉待解决问题后记 前言 在人类的感知和认知过程中,幻觉一直是一个被广泛讨论和研究的问题。幻觉指的是一种虚假的感知或认知经验,使我们看到、听到或感…

WorkPlus完备的企业级功能堆栈,打造高效的企业移动平台

在如今的数字化时代,企业需要一个完备的功能堆栈来满足复杂的业务需求。WorkPlus作为一个完整的企业级移动平台,拥有完备的企业级功能,如IM、通讯录、内部群、模板群、工作台、权限管控、应用中心、日程管理、邮箱、同事圈、服务号、智能表单…

【AI视野·今日Robot 机器人论文速览 第六十九期】Wed, 3 Jan 2024

AI视野今日CS.Robotics 机器人学论文速览 Wed, 3 Jan 2024 Totally 5 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers NID-SLAM: Neural Implicit Representation-based RGB-D SLAM in dynamic environments Authors Ziheng Xu, Jianwei Niu, Qingf…

Micro-app 微前端框架demo介绍

Micro-app 框架 1、框架安装 npm i micro-zoe/micro-app --save2、子应用对应的view页面 <template><div><!-- name(必传)&#xff1a;应用名称url(必传)&#xff1a;应用地址&#xff0c;会被自动补全为http://localhost:3000/index.htmlbaseroute(可选)&…

Cadence Editor 关于画PCB相关内容

目录 一 新建PCB文件 二 指定封装库 三 导入网表 四 放置器件 五 绘制板框 六 精准定位 七 原理图与PCB的交互 八 飞线设置 九 层管理 布局布线阶段需要显示的层 十 器件位置相关 1 器件选取的基准点 2 旋转 3 对齐 4 把器件移动到底层或顶层 5 锁定与解锁 6…

window使用cpolar实现内网穿透

文章目录 cpolar下载和安装启动和配置cpolar卸载 cpolar下载和安装 进入spolar官网&#xff0c;完成注册&#xff0c;下载相应的cploar版本解压和运行安装文件 配置安装路径&#xff0c;然后选择next&#xff0c;完成即可 启动和配置 点击首页的快捷图标打开网页&#xf…

无锁队列 SPSC

无锁队列 SPSC Queuehttps://www.cnblogs.com/sinkinben/p/17949761/spsc-queue 在多线程编程中&#xff0c;一个著名的问题是生产者-消费者问题 (Producer Consumer Problem, PC Problem)。 对于这类问题&#xff0c;通过信号量加锁 (https://www.cnblogs.com/sinkinben/p/1…

windows安装nvm以及nvm常用命令

目录 1.什么是nvm以及为啥要用nvm 1.什么是nvm 2.为什么要用nvm 2.安装nvm 1. 下载 2. 安装 1.双击解压后的文件,nvm-setup.exe 2.同意 3.安装路径 4.下一步&#xff0c;这里有建议改成自己的文件夹&#xff0c;这个是用来存储通过nvm切换node后版本的存储路径 5.安装…

MongoDB复制集原理

复制集高可用 复制集选举 MongoDB 的复制集选举使用 Raft 算法&#xff08;https://raft.github.io/&#xff09;来实现&#xff0c;选举成功的必要条件是大多数投票节点存活。在具体的实现中&#xff0c;MongoDB 对 raft 协议添加了一些自己的扩展&#xff0c;这包括&#x…