原创!分解+集成思想新模型!VMD-CNN-BiGRU-Attention一键实现时间序列预测!以风速数据集为例

news2024/9/23 15:24:37

       声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~ 

目录

数据介绍

模型流程

创新点

结果展示

部分代码展示

完整代码


        今天为大家带来一期基于分解+集成思想的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] 通道数 32
    lgraph = addLayers(lgraph,tempLayers);                                 % 将上述网络结构加入空白结构中
     
    tempLayers = [
        reluLayer("Name", "relu_1")                                        % 激活层
        convolution2dLayer([3, 1], 64, "Name", "conv_2")                   % 卷积层 卷积核[3, 1] 步长[1, 1] 通道数 64
        reluLayer("Name", "relu_2")];                                      % 激活层
    lgraph = addLayers(lgraph, tempLayers);                                % 将上述网络结构加入空白结构中

        可以看到,代码注释非常清晰,适合新手小白!

完整代码

        点击下方小卡片,后台回复关键字,不区分大小写:

CXYHF

        其他更多需求或想要的代码均可点击下方小卡片后后台私信,看到后会秒回~

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

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

相关文章

【系统架构设计师】计算机系统基础知识 03

系统架构设计师 - 系列文章目录 01 系统工程与信息系统基础 02 软件架构设计 03 计算机系统基础知识 文章目录 系统架构设计师 - 系列文章目录 文章目录 前言 一、计算机系统概述 1.计算机组成 ​编辑2.存储系统 二、操作系统 ★★★★ 1.进程管理 2.存储管理 1.页式存储 …

Java:设计模式

文章目录 参考简介工厂模式简单工厂模式工厂方法模式抽象工厂模式总结 单例模式预加载懒加载线程安全问题 策略模式 参考 知乎 简介 总体来说设计模式分为三类共23种。 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模…

Java 22正式发布,一文了解全部新特性

就在昨晚,Java 22正式发布!该版本提供了 12 项功能增强,其中包括 7 项预览功能和 1 项孵化器功能。它们涵盖了对 Java 语言、API、性能以及 JDK 中包含的工具的改进。 下面就来一起学习一下该版本都更新了哪些新特性! Unnamed V…

世媒讯软文营销策略如何做才能达到引流的目的

软文营销是一种通过撰写软文来宣传企业、产品或服务的网络营销方式。通过撰写具有故事性、吸引人的文章来间接推广产品、服务或品牌的营销策略。要实现软文营销的目的,即引流(吸引流量),以下是一些有效的策略: 新闻策略…

学点儿Java_Day7_继承、重载、重写、多态、抽象类

1 继承 1.1 概念与理解 继承: 你继承谁你就是谁,继承是一种严格的父子关系(抽取到父类里面的属性和方法一定是所有子类所共有)      (Student继承Person,那么Student就是人) 面向对象特征…

数据结构:初识树和二叉树

目前主流的方式是左孩子右兄弟表示法 我们的文件系统就是一个树 以上就是树的概念,我们今天还要来学习一种从树演变的重要的结构:二叉树 顾名思义二叉树就是一个结点最多有两个子树。 其中我们还要了解满二叉树和完全二叉树的概念 注意我们的完全二叉…

四、C语言中的数组:如何输入与输出二维数组(数组,完)

本章的学习内容如下 四、C语言中的数组:数组的创建与初始化四、C语言中的数组:数组的输入与元素个数C语言—第6次作业—十道代码题掌握一维数组四、C语言中的数组:二维数组 1.二维数组的输入与输出 当我们输入一维数组时需要一个循环来遍历…

10.注册页面

注册页面 在pages中新建页面register 复制粘贴之前的登录页面 设置上传头像图片 微信官方文档 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/userProfile.html <button class"avatar-wrapper" open-type"chooseAvatar&quo…

微调alpaca-lora遇到的一些问题

1、环境简介 环境&#xff1a; 系统&#xff1a;Ubuntu torch&#xff1a;2.2.1 python&#xff1a;3.10 gpu&#xff1a;V100 16g peft&#xff1a;0.9.0 使用PEFT中的lora方式微调llama-2-7b-hf&#xff0c;项目地址&#xff1a;alpaca-lora 2、混合精度训练Tensor相互计算会…

海外重要行业媒体:知名服务商IntoTheBlock现已集成波场TRON网络分析数据

近日,领先链上分析服务提供商 IntoTheBlock 宣布已将波场 TRON 网络集成至其市场情报套件。该合作引发多家海外加密媒体关注,Crypto Slate、Crypto Briefing等均对此进行了报道,称此次合作意义深远,能帮助数百万用户更深入地了解波场TRON生态系统。 报道表示,波场TRON网络规模大…

中文编程入门(Lua5.4.6中文版)第十一章 Lua 模块与包 参考星争际霸游戏

在遥远的星争际霸世界中&#xff0c;代码模块就如同星际基地中的高科技仓库&#xff0c;储存着各类经过封装优化的战术指令和战略资源。自Lua 5.1版本起&#xff0c;星际编程者们引入了标准化的模块管理系统&#xff0c;使得不同战舰之间能够共享和调用核心战斗算法&#xff0c…

Linux-网络层IP协议、链路层以太网协议解析

目录 网络层&#xff1a;IP协议地址管理路由选择 链路层 网络层&#xff1a; 网络层&#xff1a;负责地址管理与路由选择 — IP协议&#xff0c;地址管理&#xff0c;路由选择 IP协议 数据格式&#xff1a; 4位协议版本&#xff1a;4-ipv4协议版本 4位首部长度&#xff1a;以…

Redis实战:缓存穿透及其解决思路 实战演示

&#x1f389;&#x1f389;欢迎光临&#xff0c;终于等到你啦&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;持续更新的专栏Redis实战与进阶 本专栏讲解Redis从原理到实践 …

Python爬虫框架大比拼!从小爬虫到大数据采集|电商大数据采集API接口

在互联网时代&#xff0c;数据是无处不在的黄金。无论你是寻找小规模的数据采集任务还是大规模的网络爬虫项目&#xff0c;Python提供了丰富的爬虫框架供你选择。对于小型爬虫需求&#xff0c;你可能会喜欢使用requests库和Beautiful Soup(bs4库)这样的基本工具&#xff0c;它们…

想当初级爬虫工程师,需要把爬虫学到什么程度?

这篇文章会说说我自己的心得体验&#xff0c;关于爬虫、关于工作&#xff0c;仅供参考。 学到哪种程度 暂且把目标定位初级爬虫工程师&#xff0c;简单列一下吧&#xff1a; &#xff08;必要部分&#xff09; 语言选择&#xff1a;一般是了解Python、Java、Golang之一 熟悉…

C#操作像素替换图片中的指定颜色

待处理的图片&#xff0c;其特征是包含有限数量颜色&#xff0c;不同的颜色相互交叉使用&#xff0c;相同颜色并未完全连贯&#xff0c;需要将图片中的指定颜色替换为另一颜色。虽然很多图片处理工具都支持类似操作&#xff0c;最后还是自己动手编写简单的处理程序。   程序的…

尚硅谷SQL|数据库的创建,修改与删除

DDL&#xff1a;创建和管理表 DDL所有的操作都要慎重&#xff0c;尤其是删除&#xff0c;清空等。 创建数据库--->确认字段--->创建数据表---->插入数据 创建数据库 1.创建数据库&#xff1a;推荐使用方式3 #创建数据库 #方式1,使用的是默认字符集 create databa…

24计算机考研调剂 | (研究所)北京微电子技术研究所

北京微电子技术研究所2024年考研调剂信息 调剂信息 一、招生专业 二、调剂对象 统考科目为思想政治理论、英语&#xff08;一&#xff09;、数学&#xff08;一&#xff09;&#xff1b;本科为电子科学与技术、微电子学、集成电路设计、电子信息工程、通信工程、计算机科学与…

有关Theano和PyTensor库

根据Github里面的介绍&#xff0c;PyTensor是源于Theano&#xff0c; Theano目前应该已经不再开发了&#xff0c;更新都是很多年前。 因此PyTensor在背景介绍中说 PyTensor is a fork of Aesara, which is a fork of Theano. Theano和PyTensor都是计算相关的库&#xff0c;可以…