【VMD-LSTM】变分模态分解-长短时记忆神经网络研究(Python代码实现)

news2025/2/23 14:39:05

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

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

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

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

目录

💥1 概述

1.1 变分模态分解算法

1.2 LSTM

📚2 运行结果​编辑

🎉3 参考文献

🌈4 Python代码实现


💥1 概述

参考文献:

1.1 变分模态分解算法

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

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

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

1.2 LSTM

长短时记忆( long-short term memory,LSTM) 神经网络是 Hochreiter 等提出的一种改进后的循环式神经网络,可有效解决循环式神经网络存在的梯度爆炸和阶段性梯度消失的问题。在传统

循环式神经网络基础上,在隐含层增设记忆模块,可使信息较长时间地储存和遗传,其结构如图 1

所示。

📚2 运行结果

 

部分代码:

def GRU_predict(data=None, epochs=100, predict_duration=len(test), fitting=None): 
    trainX,trainY,scalarY = create_train_test_set(data, co_imf_predict_for_fitting=fitting) 
    x_train,x_test = trainX[:-predict_duration],trainX[-predict_duration:] 
    y_train,y_test = trainY[:-predict_duration],trainY[-predict_duration:]
    train_X = x_train.reshape((x_train.shape[0], x_train.shape[1], x_train.shape[2])) 
    test_X = x_test.reshape((x_test.shape[0], x_test.shape[1], x_test.shape[2])) 

    model = GRU_model(train_X.shape) 
    patience = epochs//10 
    EarlyStop = EarlyStopping(monitor='val_loss', patience=5*patience, verbose=0, mode='auto') 
    Reduce = ReduceLROnPlateau(monitor='val_loss', patience=patience, verbose=0, mode='auto')
    
    history = model.fit(train_X, y_train, epochs=epochs, batch_size=32, validation_split=0.1, verbose=0, shuffle=True, callbacks=[EarlyStop,Reduce]) 
    
    y_test_predict = model.predict(test_X) 
    df_gru_evaluation = evaluation_model(y_test, y_test_predict) 
    y_test_predict = y_test_predict.ravel().reshape(-1,1) 
    
    y_test_predict_result = scalarY.inverse_transform(y_test_predict) 
    y_test_raw = scalarY.inverse_transform(y_test)    
    df_predict_raw = pd.DataFrame({'raw': y_test_raw.ravel(), 'predict': y_test_predict_result.ravel()}, index=range(len(y_test_raw))) # Output
    df_train_loss= pd.DataFrame({'loss': history.history['loss'], 'val_loss': history.history['val_loss']}, index=range(len(history.history['val_loss'])))
    
    return df_predict_raw, df_gru_evaluation, df_train_loss

🎉3 参考文献

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

[1]邴其春,张伟健,沈富鑫,胡嫣然,高鹏,刘东杰.基于变分模态分解和LSTM的短时交通流预测[J].重庆理工大学学报(自然科学),2023,37(05):169-177.

🌈4 Python代码实现

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

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

相关文章

主动降噪技术的运用及其展望---【其利天下技术】

降噪耳机想必大家是听说过的,那么什么是降噪耳机呢?降噪耳机的降噪是如何实现的呢? 在很多年前,我想大家肯定认为降噪耳机不就是做得比较帖耳,尽量把声波能量隔离不让进入人耳吗?搞得这么神秘干吗呢&#…

猿辅导基于 EMR StarRocks 的 OLAP 演进之路

摘要:猿辅导大数据平台团队负责人申阳分享了猿辅导基于 StarRocks 的 OLAP 演进之路。主要包括以下几大部分: 数据需求产生OLAP 选型StarRocks 的优势业务场景和技术方案基础建设 Tips:点击「阅读原文」查看原文视频 1► 数据需求产生 猿辅导…

【Linux】进程间通信(1)——匿名管道

文章目录 前言进程间通信的目的进程间通信的发展进程间通信分类管道什么是管道?站在内核角度-管道本质匿名管道pipe函数管道的特点(重要)用fork来共享管道原理匿名管道的使用步骤管道的读写规则管道的四种场景 如何使用管道进行进程间通信&am…

【Vue3学习】Vuex 状态管理 store

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 安装 npm npm install vuexnext --saveyarn npm install vuexnext --save基本使用 1)创建…

Kubernetes初认识

系列文章目录 文章目录 系列文章目录一、Kubernetes初认识1.k8s的特性2.K8S架构3.Kubernetes工作流程 二、K8S创建Pod流程1.详细版2.简单版 总结 一、Kubernetes初认识 1.k8s的特性 弹性伸缩:使用命令、UI或者基于CPU使用情况自动快速扩容和缩容应用程序实例&…

磁盘调度算法及其应用

导读: 磁盘调度是计算机系统中的重要问题之一。在多个进程同时访问磁盘时,合理的磁盘调度算法可以优化磁盘访问顺序,提高系统性能。本文将介绍磁盘调度算法的基本思想,并通过一个实验来模拟不同调度算法的运行过程。 正文&#…

如何翻译 Markdown 文件?-2-几种商业及开源解决方案介绍

背景 近期在搭建英文博客-<e-whisper.com>, 需要对现有的所有中文 Markdown 翻译为英文。 需求如下&#xff1a; 将 Markdown 文件从中文 (zh-CN) 翻译为英文 (en)翻译后要保留 Markdown 的完整格式部分 Markdown block 不需要翻译&#xff0c;如&#xff1a;front-ma…

电脑蓝屏问题

如何使用DISM命令行工具修复Windows 10映像 - 系统极客 (sysgeek.cn) 电脑每周基本都会出现一次蓝屏问题&#xff1a;THREAD_STUCK_IN_DEVICE_DRIVER 售后重装系统&#xff0c;换主板&#xff0c;换硬盘都没有用&#xff0c;实在是人麻了 不知道有没有用&#xff0c;先记录一…

“边玩边赚”的区块链游戏发展前景和趋势

2008年&#xff0c;一个真实的故事。 大学期间&#xff0c;睡在我下铺的兄弟没日没夜地玩一款电脑游戏——《热血江湖》&#xff0c;期末考试和考研都没能阻止他。而最终&#xff0c;是游戏里的一把枪让他改邪归正。因为他把那件装备卖给了一个北京人&#xff0c;价格高达3000…

IT专业相关介绍【活动】

IT专业相关介绍【活动】 前言IT专业相关介绍一、IT专业的就业前景和发展趋势二、了解IT专业的分类和方向三、你对本专业的看法和感想四、本专业对人能力素养的要求五、建议和思考六、计算机思维能力测试 最后 前言 2023-6-17 10:00:29 以下内容源自《【活动】》 仅供学习交流…

Spring-kafka的消费者模型和实现原理

在使用Spring-kafka时,一般都是通过使用@KafkaListener注解的方法来实现消息监听和消费。今天写一下基于这个注解实现的消费端模型和实现的原理。 Kafka消费模型 我们在使用@KafkaListener注解实现消费者时消费者模型是这样的: 每个@KafkaListener注解对应有一个Concurren…

python窗口程序button事件处理

import tkinter as tk def add_counter(): #增加计数print("add....")def zero_counter(): #归零计数print("zero....")#窗口的属性&#xff08;大小&#xff0c;&#xff09; root tk.Tk() root.geometry("400x200200200") root.title(&q…

亚马逊云科技中国峰会:深度学习Amazon DeepRacer

序言 Amazon DeepRacer是什么&#xff1f; Amazon DeepRacer是亚马逊推出的一款基于深度学习和强化学习技术的自主驾驶模拟赛车平台。它提供了一个云端仿真环境和一个物理赛车模型&#xff0c;让用户可以通过编写代码和训练模型来控制赛车的行驶&#xff0c;从而学习和应用深…

【LeetCode】HOT 100(14)

题单介绍&#xff1a; 精选 100 道力扣&#xff08;LeetCode&#xff09;上最热门的题目&#xff0c;适合初识算法与数据结构的新手和想要在短时间内高效提升的人&#xff0c;熟练掌握这 100 道题&#xff0c;你就已经具备了在代码世界通行的基本能力。 目录 题单介绍&#…

音视频开发Level0: 入门级20~25k的工作

今天给大家分享一个音视频开发领域&#xff0c;入门级别的工作&#xff0c;要求不高。 主要做什么呢&#xff0c;行车记录仪&#xff0c;运动相机&#xff0c;各种拍摄器材包括医疗领域的喉镜啊&#xff0c;等等。 这种产品&#xff0c;招人的公司深圳最多&#xff0c;因为深…

Mac 多版本jdk安装与切换

macOS上可以安装多个版本的jdk&#xff0c;方法如下&#xff1a; 1.下载jdk 在Oracle官网上下载不同版本的jdk&#xff1a; JDK下载 知乎 - 安全中心 下载Java11版本链接 jdk11​www.oracle.com/java/technologies/javase-jdk11-downloads.html 2.安装jdk 运行此安装包&…

electron-vue 安装 sqlite3 详细步骤

1 安装 Visual Studio 2019 使用 Visual Studio instaler 安装Visual Studio 2019&#xff0c; 安装桌面应用 使用c的桌面开发, 勾选 MSVC 相应的选项。 2. 安装 node 13 版本 可以根据自己实际情况安装版本 使用 cmd 管理员身份或者 powerShell 管理员身份 执行以下命令&…

骨传导蓝牙立体声耳机怎么选,列举几款值得购买的骨传导耳机

骨传导耳机的出现&#xff0c;使得很多人摆脱了佩戴入耳式耳机的困扰&#xff0c;同时也为骨传导耳机的发展起到了很大的推动作用。骨传导耳机是一种通过骨头传声的耳机&#xff0c;由于其不需要入耳&#xff0c;所以不会因为长时间佩戴而引起耳道的不适感&#xff0c;在使用时…

baichuan-7B: 开源可商用支持中英文的最好大模型

背景 baichuan-7B 是由百川智能开发的一个开源可商用的大规模预训练语言模型。 基于 Transformer 结构&#xff0c;在大约1.2万亿 tokens 上训练的70亿参数模型&#xff0c;支持中英双语&#xff0c;上下文窗口长度为4096。 在标准的中文和英文权威 benchmark&#xff08;C-…

【FreeRTOS】——列表与列表项列表相关API函数(初始化、插入、移除)

目录 前言&#xff1a; 一、列表与列表项 二、列表相关API函数 ①初始化列表vListInitialise() ②初始化列表项vListInitialise() ③列表插入列表项&#xff08;升序&#xff09;函数vListInsert() ④列表插入列表项&#xff08;无序&#xff09;函数vListInsertEnd() …