VMD + CEEMDAN 二次分解,CNN-Transformer预测模型

news2024/9/21 22:29:19

 往期精彩内容:

时序预测: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博客

风速预测(七)VMD-CNN-BiLSTM预测模型-CSDN博客

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

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

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

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

多特征变量序列预测(一)——CNN-LSTM风速预测模型-CSDN博客

多特征变量序列预测(二)——CNN-LSTM-Attention风速预测模型-CSDN博客

多特征变量序列预测(三)——CNN-Transformer风速预测模型-CSDN博客

多特征变量序列预测(四)Transformer-BiLSTM风速预测模型-CSDN博客

多特征变量序列预测(五) CEEMDAN+CNN-LSTM风速预测模型-CSDN博客

多特征变量序列预测(六) CEEMDAN+CNN-Transformer风速预测模型-CSDN博客

多特征变量序列预测(七) CEEMDAN+Transformer-BiLSTM预测模型-CSDN博客

基于麻雀优化算法SSA的CEEMDAN-BiLSTM-Attention的预测模型-CSDN博客

基于麻雀优化算法SSA的CEEMDAN-Transformer-BiGRU预测模型-CSDN博客

多特征变量序列预测(八)基于麻雀优化算法的CEEMDAN-SSA-BiLSTM预测模型-CSDN博客

多特征变量序列预测(九)基于麻雀优化算法的CEEMDAN-SSA-BiGRU-Attention预测模型-CSDN博客

多特征变量序列预测(10)基于麻雀优化算法的CEEMDAN-SSA-Transformer-BiLSTM预测模型-CSDN博客

超强预测算法:XGBoost预测模型-CSDN博客

VMD + CEEMDAN 二次分解,BiLSTM-Attention预测模型-CSDN博客

VMD + CEEMDAN 二次分解,CNN-LSTM预测模型-CSDN博客

基于麻雀优化算法SSA的预测模型——代码全家桶-CSDN博客

多特征变量序列预测 -TCN 预测模型-CSDN博客

创新点:二次分解 + 多头注意力融合时空特征

前言

本文基于前期介绍的风速数据(文末附数据集),介绍一种基于VMD+CEEMDAN二次分解的CNN-Transformer预测模型,以提高时间序列数据的预测性能。风速数据集的详细介绍可以参考下文:

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

1 二次分解与数据集制作

1.1 导入数据

1.2 VMD分解

第一步,根据不同K值条件下, 观察中心频率,选定K值;从K=4开始出现中心频率相近的模态,出现过分解,故模态数 K 选为4。

第二步,分解可视化

1.3 样本熵

样本熵是一种用于衡量序列复杂度的方法,可以通过计算序列中的不确定性来评估其复杂性。样本熵越高,表示序列的复杂度越大。

通过对VMD分解出四个分量的样本熵计算,残差项IMF4有着更丰富的不可控信息,为进一步提取IMF4中的有效信息,对VMD的残差项IMF4,进行CEEMDAN分解

1.4 CEEMDAN分解

对 VMD分解出的 最后一个残差分量进行再分解

1.5 数据集制作

先合并VMD和CEEMDAN分解的分量,按照8:2划分训练集和测试集

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

2 基于Pytorch的 CNN-Transformer 预测模型

2.1 定义CNN-Transformer预测模型

注意:输入风速数据形状为 [64, 48, 14], batch_size=64,48代表序列长度(滑动窗口取值),  维度14维代表合并分量的维度。

2.2 设置参数,训练模型

50个epoch,MSE 为0.00290,VMD+CEEMDAN二次分解的CNN-Transformer预测效果良好,二次分解后,能够提取序列中更多的信息,CNN-Transformer模型能够提取出分量特征的时空信息,预测效果提升明显,性能优越,适当调整模型参数,还可以进一步提高模型预测表现。

注意调整参数:

  • 可以修改CNN层数和每层维度数;

  • 调整Transformer编码器层数和注意力维度数、多头注意力头数,增加更多的 epoch (注意防止过拟合)

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

3 模型评估与可视化

3.1 结果可视化

3.2 模型评估

代码、数据如下:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Data.olllo:一键数据“分组统计”!

引言: 数据统计是数据分析中的重要环节,而如何快速、准确地进行数据分组统计是许多数据工作者关注的焦点。现在,借助Data.olllo的神奇功能,您可以轻松进行一键式的数据分组统计,为您的数据分析提供更强大的支持&…

什么是浏览器指纹识别?指纹浏览器有用吗?

浏览器指纹识别是好是坏?这现在确实是一个有争议的话题。83%的消费者经常或偶尔会根据浏览历史记录看到广告。其实这就是利用了浏览器指纹技术。 如果您想了解浏览器指纹识别是什么,那就看下去! 一、什么是浏览器指纹识别 浏览器指纹是指无…

Quartz完全开发手册(一篇学会Quartz所有知识点)

目录 一、Quartz概念 1.1、Quartz介绍 1.2、使用场景 1.3、特点 二、Quartz运行环境 三、Quartz设计模式 四、Quartz学习的核心概念 4.1、任务Job 4.2、触发器Trigger 4.3、调度器Scheduler 五、Quartz的体系结构与工作流程 5.1、体系结构 5.2、工作流程 六、Quar…

【Mock|JS】Mock的get传参+获取参数信息

mockjs的get传参 前端请求 const { data } await axios("/video/childcomments", {params: {sort: 1,start: 2,count: 5,childCount: 6,commenIndex: 0,},});后端获取参数 使用正则匹配url /*** # 根据url获取query参数* param {Url} urlStr get请求获取参数 eg:…

鸿蒙Harmony应用开发—ArkTS-全局UI方法(时间滑动选择器弹窗)

以24小时的时间区间创建时间滑动选择器,展示在弹窗上。 说明: 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 本模块功能依赖UI的执行上下文,不可在UI上下文不明确的地方使用&…

vuecli创建vue3项目

第一步: 在文件夹中输入 vue create xxx 第二步: 勾选下面带有*号的,经验最好把Linter/Formatter勾掉,不然会出现eslint报错 第三步: 选择3.x 第四步: 意思为是否用history模式来创建路由&#xff0…

把 Taro 项目作为一个完整分包,Taro项目里分包的样式丢失

现象: 当我们把 Taro 项目作为原生微信小程序一个完整分包时,Taro项目里分包的样式丢失,示意图如下: 原因: 在node_modules/tarojs/plugin-indie/dist/index.js文件里,限制了只有pages目录下会被引入app.w…

The 2023 Guangdong Provincial Collegiate Programming Contest

I. Path Planning 嗯,怎么说呢,一般二维图,数据不是很大的比如n*m*log级别允许的,如果一眼不是bfs,可以考虑结合一下二分 本题可知,只能向下或者向右,那么我们就像如果答案为x,那么…

【重温设计模式】访问者模式及其Java示例

访问者模式的基本概念 访问者模式,一种行为型设计模式,其基本定义是:允许一个或者多个操作应用到一组对象上,解耦操作和对象的具体类,使得操作的添加可以独立于对象的类结构变化。在面向对象编程中,访问者…

sqllab第35-45关通关笔记

35关知识点: 宽字节注入数值型注入错误注入 payload:id1andextractvalue(1,concat(0x7e,database(),0x7e))0--联合注入 payload:id0unionselect1,database(),version()-- 36关知识点: 字符型注入宽字节注入错误注入 payload:id1%df%27andextractvalue(…

什么是浏览器指纹识别?Maskfog指纹浏览器有用吗?

浏览器指纹识别是好是坏?这现在确实是一个有争议的话题。83%的消费者经常或偶尔会根据浏览历史记录看到广告。其实这就是利用了浏览器指纹技术。 如果您想了解浏览器指纹识别是什么,那就看下去! 一、什么是浏览器指纹识别 浏览器指纹是指无…

Linux学习之自定义协议

前言: 首先对于Tcp的socket的通信,我们已经大概了解了,但是其中其实是由一个小问题,我们目前是不得而知得,在我们客户端与服务端连接成功后,服务端读取来自客户端得消息,我们使用的是函数read,…

线程池相关详解

1.线程池的核心参数 线程池核心参数主要参考ThreadPoolExecutor这个类的7个参数的构造函数: corePoolSize核心线程数目 maximumPoolSize最大线程数目(核心线程救急线程的最大数目) keepAliveTime生存时间:救急线程的生存时间,生…

Pytorch入门实战 P3-天气识别

目录 一、前期准备 1、查看设备 2、导入本地数据 3、测试下获取到的天气数据 4、图像预处理 5、划分数据集 6、加载数据集 二、搭建简单的CNN网络(特征提取分类) 三、训练模型 1、设置超参数 2、编写训练函数 3、编写测试函数 4、正式训练 …

4、类加载器

2.4.1 什么是类加载器 类加载器(ClassLoader)是Java虚拟机提供给应用程序去实现获取类和接口字节码数据的技术,类加载器只参与加载过程中的字节码获取并加载到内存这一部分。 类加载器会通过二进制流的方式获取到字节码文件的内容&#xff0c…

Visual Studio配置libtorch(cuda安装一步到位)

Visual Studio配置libtorch visual Studio安装cuDNN安装CUDAToolkit安装libtorch下载Visual Studio配置libtorch(cuda版本配置) visual Studio安装 visual Studio点击安装 具体的安装和配置过程这里就不进行细讲了,可以参考我这篇博客Visual Studio配置OpenCV(保姆…

【嵌入式学习】Qtday03.21

一、思维导图 二、练习 自由发挥登录窗口的应用场景,实现一个登录窗口界面。(不要使用课堂上的图片和代码,自己发挥,有利于后面项目的完成) 要求: 1. 需要使用Ui界面文件进行界面设计 2. ui界面上的组件…

vue.js制作学习计划表案例

通俗易懂,完成“学习计划表”用于对学习计划进行管理,包括对学习计划进行添加、删除、修改等操作。 一. 初始页面效果展示 二.添加学习计划页面效果展示 三.修改学习计划完成状态的页面效果展示 四.删除学习计划 当学习计划处于“已完成”状态时&…

栈——数据结构——day4

栈的定义 栈是限定仅在一段进行插入和删除操作的线性表。 我们把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构。 栈的插入操作,叫作进栈&#…

开源项目ChatGPT-Next-Web的容器化部署(三)-- k8s deployment.yaml部署

一、说在前面的话 有了docker镜像,要把一个项目部署到K8S里,主要就是编写deployment.yaml。 你需要考虑的是: 环境变量服务的健康检测持久化启动命令程序使用的数据源程序使用的配置文件 因为本前端项目比较简单,这里只做一个…