原创!分解+集成思想新模型!VMD-CNN-BiGRU-Attention一键实现时间序列预测!以风速数据集为例
声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~
目录
数据介绍
模型流程
创新点
结果展示
部分代码展示
完整代码
今天为大家带来一期基于分解+集成思想的VMD-CNN-BiGRU-Attention时间序列预测代码,知网和WOS都是搜不到的!完全是作者独家创立的!可以说是尚未发表的创新点!直接替换Excel数据即可用!
特别需要指出的是,我们在各个学术平台上搜索VMD-CNN-BiGRU-Attention,都是完全搜索不到这个模型的!!!不信的可以看下面截图!
知网平台:
WOS平台:
数据介绍
本期作者采用的数据是某地的风速时间序列数据集,是为了方便大家替换自己的数据集。如果有时间一列,则可输入可不输入,因为程序是不会识别时间。
更换自己的数据时,只需替换Excel中这一列,无需更改代码,非常方便!!!
模型流程
先简单介绍一下我们的这个模型是怎么实现以及它的流程:
1.数据导入:从Excel文件中读取风速预测的数据,只需一列即可。
2.VMD分解:设置VMD参数,如分解个数和阿尔法的值,对风速序列使用VMD分解方法,分解成多个固有模式函数(IMF),并绘制分解结果。
3.数据预处理和格式准备:将分解后的IMFs作为目标变量进行预处理,设置延时步长(若干个历史数据作为自变量),还有训练集和测试集的划分、数据归一化等。
4.模型训练:对每个IMF分量,构建并训练CNN-BiGRU-Attention模型。
5.模型预测:使用训练好的模型对训练集和测试集进行预测,并将预测结果进行反归一化处理。
6.预测结果集成:将所有IMF分量的预测结果相加,得到最终的预测结果。
7.结果对比和评估:绘制真实值与预测值的对比图,并计算R^2、MAE、RMSE和MAPE等评估指标。
以上所有流程,作者都已精心整理过代码,都可以一键运行main直接出图!
适用平台:Matlab2020B及以上,没有的可免费提供安装包!
创新点
以下这些文字,如果大家需要用这个程序写论文,都是可以直接搬运的!
1.VMD (Variational Mode Decomposition):
VMD是一种信号分解方法,可以将时间序列数据分解成不同频率的子信号(模态)。利用VMD技术,模型可以更好地捕捉时间序列数据中不同频率的变化模式,提高了模型对数据特征的提取能力。
2.CNN (Convolutional Neural Network):
CNN被用于处理每个VMD分解得到的子信号,以提取局部特征。通过CNN,模型能够有效地捕获子信号中的空间局部信息,增强了模型对时间序列数据的特征提取能力。
3.BiGRU (Bidirectional Gated Recurrent Unit):
BiGRU是一种具有双向记忆和门控机制的循环神经网络结构,能够捕捉时间序列数据中的长期依赖关系。通过BiGRU,模型可以在学习过程中有效地记忆序列数据中的历史信息,从而提高了模型对序列数据的建模能力。
4.通道注意力机制:
通道注意力机制被引入以动态地调整模型对不同时间序列位置的关注程度。通过Attention机制,模型可以自适应地关注重要的时间序列,从而提高了模型在时间序列预测任务中的性能。
5. 模型结构的高度整合
该模型的一个关键创新是四种技术的高度整合,形成了一个既能捕捉复杂时间依赖性、又能关注关键信息的强大深度学习模型。这种整合不仅使模型在时间序列任务中表现出色,还保证了较低的计算成本和良好的可解释性。
结果展示
原始序列:
VMD分解结果:
网络结构图:
训练集预测结果:
测试集预测结果:
回归图:
误差直方图:
预测结果指标:
由于时间关系,CNN-BiGRU-Attention的迭代次数作者只设置了100次,如果时间充足,可运行更多次,效果会更好~
以上所有图片,作者都已精心整理过代码,都可以一键运行main直接出图,不像其他代码一样需要每个文件运行很多次!
不信的话可以看下面文件夹截图,仅仅只有4个文件,非常清晰明了!
部分代码展示
%% 建立模型lgraph = layerGraph(); % 建立空白网络结构tempLayers = [sequenceInputLayer([f_, 1, 1], "Name", "sequence") % 建立输入层,输入数据结构为[f_, 1, 1]sequenceFoldingLayer("Name", "seqfold")]; % 建立序列折叠层lgraph = addLayers(lgraph, tempLayers); % 将上述网络结构加入空白结构中tempLayers = convolution2dLayer([3, 1], 32, "Name", "conv_1"); % 卷积层 卷积核[3, 1] 步长[1, 1] 通道数 32lgraph = addLayers(lgraph,tempLayers); % 将上述网络结构加入空白结构中tempLayers = [reluLayer("Name", "relu_1") % 激活层convolution2dLayer([3, 1], 64, "Name", "conv_2") % 卷积层 卷积核[3, 1] 步长[1, 1] 通道数 64reluLayer("Name", "relu_2")]; % 激活层lgraph = addLayers(lgraph, tempLayers); % 将上述网络结构加入空白结构中
可以看到,代码注释非常清晰,适合新手小白!
完整代码
点击下方小卡片,后台回复关键字,不区分大小写:
CXYHF
其他更多需求或想要的代码均可点击下方小卡片后后台私信,看到后会秒回~
相关文章:

原创!分解+集成思想新模型!VMD-CNN-BiGRU-Attention一键实现时间序列预测!以风速数据集为例
声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~ 目录 数据介绍 模型流程 创新点 结果展示 部…...

ab (Apache benchmark) - 压力/性能测试工具
Apache benchmark(ab) 安装window安装使用方法 - bin目录运行使用方法 - 任意目录运行 linux安装 基本命令介绍常用参数:输出结果分析: ab的man手册 安装 window安装 官网下载链接:https://www.apachehaus.com/cgi-bin/download…...

除了Confluence,有没有其他工具一样好用?
每个团队都需要一个协同工作工具,以更有效地管理任务、跟踪进度和分享知识。这就是Atlassian的Confluence发挥作用的地方。然而,尽管它相当强大,其昂贵的价格和复杂的界面可能会让某些用户望而却步。所以,还有其他工具可以替代Con…...

查询表中数据(全列/特定列/表达式,where子句(比较/逻辑运算符),order by子句,limit筛选分页),mysql执行顺序
目录 select 全列查询 特定列查询 用表达式查询 (as) 名字 distinct 去重 where子句 比较运算符 列数据之间的比较 编辑 别名不能参与比较 null查询 between and in ( ... , ...) 模糊匹配 逻辑运算符 order by子句 可以使用别名 总结mysql执行顺…...

【Linux】多线程概念 | POSIX线程库
文章目录 一、线程的概念1. 什么是线程Linux下并不存在真正的多线程,而是用进程模拟的!Linux没有真正意义上的线程相关的系统调用!原生线程库pthread 2. 线程和进程的联系和区别3. 线程的优点4. 线程的缺点5. 线程异常6. 线程用途 二、二级页…...
Java Spring AOP代码3分钟快速入手
AOP Spring入门(十):Spring AOP使用讲解 - 掘金 maven的依赖: <dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId> </dependency> <!--aspectj支持--> <dependen…...

.NET开源快速、强大、免费的电子表格组件
今天大姚给大家分享一个.NET开源(MIT License)、快速、强大、免费的电子表格组件,支持数据格式、冻结、大纲、公式计算、图表、脚本执行等。兼容 Excel 2007 (.xlsx) 格式,支持WinForm、WPF和Android平台:ReoGrid。 项…...

docker一键部署若依前后端分离版本
比如这里把文件放到/xin/docker/jiaoZ/的目录下,jar包和下面的配置文件都放在这个文件夹下。 注意要把jar端口改为你实际启动的,映射端口也可以改为你想要的。 这里的映射端口为:nginx监听80端口,jar在8620端口,mysq…...
Java项目开发之fastjson详解
Fastjson 是由阿里巴巴公司开发的一个 Java 语言编写的高性能 JSON 处理库。它主要用于 Java 对象与 JSON 数据格式之间的转换,提供了简单易用的 API 来实现序列化(Java 对象转 JSON 字符串)和反序列化(JSON 字符串转 Java 对象&a…...

面试算法-62-盛最多水的容器
题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容器。…...

【智能算法】海洋捕食者算法(MPA)原理及实现
目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2020年,Afshin Faramarzi 等人受到海洋生物适者生存启发,提出了海洋捕食者算法(Marine Predators Algorithm,MPA)。 2.算法原理 2.1算法思想 MPA根据模拟自然界…...

刷题DAY24 | LeetCode 77-组合
1 回溯法理论基础 回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯是递归的副产品,只要有递归就会有回溯。 所以以下讲解中,回溯函数也就是递归函数,指的都是一个函数。 1.1 回溯法的效率 回溯法的性能如何呢࿰…...
Spring Boot为什么默认使用CGLIB动态代理
兼容性: 1. CGLIB 动态代理可以代理任何类型的目标类,无论它是否实现了接口;[注意的是,类被 final 修饰,那么该不可被继承,即不可被代理;同样,类中 final 修饰的方法&am…...

算法详解——Dijkstra算法
Dijkstra算法的目的是寻找单起点最短路径,其策略是贪心加非负加权队列 一、单起点最短路径问题 单起点最短路径问题:给定一个加权连通图中的特定起点,目标是找出从该起点到图中所有其他顶点的最短路径集合。需要明确的是,这里关心…...
利用GANs进行图像生成
生成对抗网络(GANs)是一种深度学习模型,由两部分组成:生成器(Generator)和判别器(Discriminator)。它们通过相互竞争来提高生成器生成高质量图像的能力。以下是如何利用GANs进行图像…...

Flutter-底部弹出框(Widget层级)
需求 支持底部弹出对话框。支持手势滑动关闭。支持在widget中嵌入引用。支持底部弹出框弹出后不影响其他操作。支持弹出框中内容固定头部和下面列表时,支持触摸头部并在列表不在头部的时候支持滑动关闭 简述 通过上面的需求可知,就是在界面中可以支持…...

聚焦两会:数字化再加速,VR全景助力制造业转型
近年来,随着信息技术、人工智能、VR虚拟现实等新兴技术的不断涌现,数字化正日益成为推动当今经济发展的新驱动力。在不久前的两会上,数字化经济和创新技术再度成为热门话题: 国务院总理李强作政府工作报告: 要深入推…...

数据挖掘之关联规则
“啤酒和尿布的荣誉” 概念 项 item:单个的事物个体 ,I{i1,i2…im}是所有项的集合,|I|m是项的总数项集(item set)/模式(pattern):项的集合,包含k个项的项集称为k-项集数据集(data set)/数据库…...
java:java.util.BitSet对象的Jackson序列化和反序列化实现
java.util.BitSet是个非常方便的比特位数据存储和操作类,一个 bit 具有2个值:0和1,正好可以用来表示 false 和 true,适用于判断“数据是否存在”的场景。 但是,这个从JDK1.0版本就存在的类,Jackson,Fastjso…...
Go语言学习01-基本程序结构
文章目录 Go语言学习01-基本程序结构基本程序结构应用程序入口退出返回值编写测试程序快速设置连续值基本数据类型类型的预定义值指针类型运算符算数运算符比较运算符用 比较数组 逻辑运算符位运算符&^ 按位 置零 Go语言学习01-基本程序结构 基本程序结构 package main …...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...

企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...

基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...

基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
jmeter聚合报告中参数详解
sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案
在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...
comfyui 工作流中 图生视频 如何增加视频的长度到5秒
comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗? 在ComfyUI中实现图生视频并延长到5秒,需要结合多个扩展和技巧。以下是完整解决方案: 核心工作流配置(24fps下5秒120帧) #mermaid-svg-yP…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能
指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...