【CEEMDAN-VMD-GRU】完备集合经验模态分解-变分模态分解-门控循环单元预测研究(Python代码实现)

news2024/11/24 9:04:25

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

1.1 完备集合经验模态分解原理

1.2 变分 模 态 分 解

1.3 GRU

📚2 运行结果

🎉3 参考文献

🌈4 Python代码实现


💥1 概述

1.1 完备集合经验模态分解原理

早期的 EMD 方法具有较强的自适应性,能够有效地分解时间序列;但是,算法在运算过程中

容易出现模态混叠现象。EEMD 分解方法的思想是:在原始信号中加入白噪声[16],使极值点分布更均衡;最终分量在EMD 的基础上进行集成平均而得。但是,这种方法具有计算量大且重构时残留噪音大的缺陷。CEEMDAN 是 EEMD 的改进算法。该算法通过添加有限次数的自适应白噪声,解决了集合平均次数限制下的重构误差较大的问题。

1.2 变分 模 态 分 解

变分 模 态 分 解 ( variational mode decomposition,VMD) 算法是由 Dragomiretskiy 等提出的一种自动自适应、非递归的信号处理方法。此算法克服了 EMD 及其改进算法端点效应和模态分量

混叠的问题,可以将非稳定性、非线性且复杂度高的信号分解为多个相对平稳的子序列,在求解过

程中可自适应匹配最佳中心特征,极大程度地迎合高频率复杂信号的分解。

1.3 GRU

循环神经网络(Recurrent neural network,RNN)是经典的神经网络之一。由于 RNN 隐藏层

在不同样本序列的同一个神经元之间存在记忆传递,因此 RNN 在处理时间序列的线性回归问题具有优势:即,可以将前一刻神经元受到的影响输送到下一次学习中。但是,传统的 RNN 在进行反向传播时,如果输入数据的序列比较长,就会出现梯度消失、梯度爆炸等问题。

长短期记忆网络(Long short term memory,LSTM)和 GRU 的优势,在于其通过“门”结构极大地避免梯度消失问题,可以有效地分析长期依赖关系。

LSTM 包含 3 个门结构:遗忘门,输入门、输出门[21]。GRU 在 LSTM 的基础上减少了单元中门的个数,化简了单元复杂度,因此其运行效果要好于 LSTM。GRU 是由更新门和重置门构成,其内部结构如图 1 所示。

📚2 运行结果

 

部分代码:

# 7.Predict Co-IMF0 by matrix-input GRU
time0 = time.time()
df_vmd_co_imf0['sum'] = df_integrate_result['co-imf0']
co_imf0_predict_raw, co_imf0_gru_evaluation, co_imf0_train_loss = GRU_predict(df_vmd_co_imf0)
print('======Co-IMF0 Predicting Finished======\n', co_imf0_gru_evaluation)
time1 = time.time()
print('Running time: %.3fs'%(time1-time0))
co_imf0_predict_raw.plot(title='Co-IMF0 Predicting Result')
co_imf0_train_loss.plot(title='Co-IMF0 Training Loss')


# 8.Predict Co-IMF1 and Co-IMF2 by vector-input GRU
co_imf1_predict_raw, co_imf1_gru_evaluation, co_imf1_train_loss = GRU_predict(df_integrate_result['co-imf1'])
print('======Co-IMF1 Predicting Finished======\n', co_imf1_gru_evaluation)
time2 = time.time()
print('Running time: %.3fs'%(time2-time1))
co_imf1_predict_raw.plot(title='Co-IMF1 Predicting Result')
co_imf1_train_loss.plot(title='Co-IMF1 Training Loss')

co_imf2_predict_raw, co_imf2_gru_evaluation, co_imf2_train_loss = GRU_predict(df_integrate_result['co-imf2'])
print('======Co-IMF2 Predicting Finished======\n', co_imf2_gru_evaluation)
time3 = time.time()
print('Running time: %.3fs'%(time3-time2))
co_imf2_predict_raw.plot(title='Co-IMF2 Predicting Result')
co_imf2_train_loss.plot(title='Co-IMF2 Training Loss')

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]金子皓,向玲,李林春,胡爱军.基于完备集合经验模态分解的SE-BiGRU超短期风速预测[J].电力科学与工程,2023,39(01):9-16.

[2]蒋富康,陆金桂,刘明昊,丰宇.基于CEEMDAN和CNN-LSTM的滚动轴承故障诊断[J].电子测量技术,2023,46(05):72-77.DOI:10.19651/j.cnki.emt.2210775.

🌈4 Python代码实现

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

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

相关文章

【Python】数据容器总结 ② ( 数据容器元素排序 | 字符串大小比较 | 字符大小比较 | 长短一样的字符串大小比较 | 长短不一样的字符串大小比较 )

文章目录 一、数据容器元素排序二、字符串大小比较1、字符大小比较2、长短一样的字符串大小比较3、长短不一样的字符串大小比较 一、数据容器元素排序 调用 sorted 函数 , 可以对 数据容器 中的元素进行排序 ; sorted(数据容器变量, [reverseTrue])上述两个参数 , 第一个 数据…

开源!一款.Net开发的全能工具EverythingToolbar,节约你90%操作时间!

今天给大家推荐一款已获得6.3K stars的.Net开发的开源全能工具EverythingToolbar。EverythingToolbar 是由 Everything 提供支持的 Windows 任务栏的即时文件搜索集成,可以替换操作系统任务栏上的 Windows 搜索,使 Windows 上的文件搜索更快、更可靠。 …

Hive 库表相关操作

1、Hive内部表和外部表 1.内部表:未被external修饰;外部表:被external修饰。 区别: (1)内部表数据由Hive自身管理,外部表数据由HDFS管理; (2)内部表数据存…

ESP32(Micro Python) LVGL 传感器数值显示

本程序用于显示SR04超声波传感器和BMP280气压温度传感器的读数。由于高度数值类型不符合要求,BMP280改为显示气压和温度值。气压值分两部分显示,分别为千帕值-100(避免超出表盘显示范围)和千帕值的两位小数。由于标签不能显示动态…

在Mybatis执行插入数据时,如何将Date类型字段设置为“yyyy-MM-dd”的格式

1、问题描述 使用mybatis新增插入一条数据到MySQL数据库时, 其中实体类对象的一个属性”hiredate“的类型是日期类型Date, 此属性在数据库中对应的字段“hiredate”类型也是日期Date类型, 但是在数据库中要求“hiredate”字段的字段值为“yy…

瑞萨RA4M2 基于CAN总线的UDS诊断升级MCU工具 /bootloader/UDS诊断/14229/15765

基于can总线的UDS软件升级 最近学习UDS诊断协议(ISO14229),是一项国际标准,为汽车电子系统中的诊断通信定义了统一的协议和服务。它规定了与诊断相关的服务需求,并没有设计通信机制。ISO14229仅对应用层和会话层做出了…

【SpringCloud入门】-- 认识微服务

目录 1. 什么是微服务? 2. 微服务的优势? 3. 单体架构,分布式架构,微服务架构的区别以及优缺点? 4. SpringCloud和Spring Cloud Alibaba是什么? 5. SpringCloud和SpringCloudAlibaba的区别&#xff1f…

apple pencil二代值不值得买?口碑好的电容笔排行榜

事实上,苹果Pencil与市场上普通的电容笔最大的区别就是在重量和压感上。苹果pencil拥有着独特的重力压感,可以很好运用于绘画上,但是,随着苹果Pencil的价格一直高居不下,而平替电容笔各种性能的不断提高,苹…

Vue中如何进行3D场景展示与交互(如Three.js)

Vue中如何进行3D场景展示与交互(如Three.js) 随着WebGL技术的发展,越来越多的网站开始使用3D场景来展示产品、游戏等内容。在Vue中,我们可以使用第三方库Three.js来实现3D场景的展示与交互。本文将介绍如何在Vue中使用Three.js来…

和 if else说再见,SpringBoot 这样做参数校验才足够优雅!

1. 概述 当我们想提供可靠的 API 接口,对参数的校验,以保证最终数据入库的正确性,是 必不可少 的活。比如下图就是 我们一个项目里 新增一个菜单校验 参数的函数,写了一大堆的 if else 进行校验,非常的不优雅&#xf…

语音验证码短信原理和应用场景分析

引言 随着移动互联网的快速发展,短信验证码成为了许多应用和服务中常用的身份验证方式。然而,有时候用户可能由于各种原因无法接收到短信验证码,或者对于文字验证码不够方便或友好。 为了解决这些问题,语音验证码短信API 应运而…

【论文精读ACL_2021】Prefix-Tuning: Optimizing Continuous Prompts for Generation

【论文精读ACL_2021】Prefix-Tuning: Optimizing Continuous Prompts for Generation 0、前言Abstract1 Introduction2 Related Work2.1 Fine-tuning for natural language generation.2.2 Lightweight fine-tuning2.3 Prompting.2.4 Controllable generation. 3 Problem State…

Python做数据分析需要学什么?

下面分别从这四个方面来带大家学习数据分析: 第一,做数据分析要精通Python吗?第二,数据分析流程是什么?学什么?第三,如何培养数据分析思维?第四,数据分析书籍推荐 一、…

关于linux服务器上生成的图片中文字为的乱码问题

一、功能描述 linux服务器后端生成图表(使用了canvas和echarts),并将生成的图片发送到企业微信群里。 二、出现的问题 生成的图表中文展示不出来,是乱码。错误图表展示如下: 三、 文字乱码出现的原因 linux服务器没有…

git在windows及linux(源码编译)环境下安装

git在windows及linux(源码编译)环境下安装 环境信息: 系统版本:CentOS Linux release 7.9.2009 (Core) git指令安装: yum install -y git 一、git在windows下安装 下载地址:https://git-scm.com/ 默认安装即可 验证 git --version 二、git在linux下安装 下载地址…

电子标签服务器搭建说明文档

一、安装运行环境 1.安装jdk 运行JDK_1.8.0_64bit.exe程序,可自定义安装路径 ​ 2.配置环境变量 择计算机图标,鼠标右键选择属性 ​ 选择高级系统设置,在系统属性中找到环境变量 ​ 在系统变量中新建JAVA_HOME环境变量,变量值为jdk的安装路…

跨域请求!!!

1.见过的请求类型都有哪些 getpostputdeleteoptions 和跨域相关的请求头 2.什么是跨域 当主机、域名、端口有任何一个不一致的时候,会出现跨域 3.跨域只有在哪里会出现 浏览器里出现了,它是浏览器的一个行为 4.为什么有跨域 为了安全不同域名之间…

系统编程(3):进程

文章目录 一、概念1.1 什么是进程?1.2 进程ID1.3 进程间通信1.4 进程的三种态的转换 二、进程控制2.1 创建进程函数:fork函数2.1.1 获得pid函数写代码:方式一:最简单的方式二:加入while(1)死循环…

基于Arduino的LED显示屏驱动实现

基于Arduino的LED显示屏驱动实现可以通过使用Arduino板上的数字引脚和相关库来控制LED显示屏的亮灭和显示效果。LED显示屏加载不出图像怎么办? 下面是基于Arduino的LED显示屏驱动实现的详细介绍: 硬件准备: Arduino开发板:可以使用…

ROS中 mpc_local_planner 局部路径规划器参数配置文件中参数含义

mpc_local_planner与我们比较熟悉的teb_local_planner出自同一研究所(多特蒙德大学-控制理论与系统工程研究所),所以参数配置文件中的参数有很多相似之处,很多参数的含义也是相同的,所以熟悉teb_local_planner的参数含…