当前位置: 首页 > news >正文

时序预测 | MATLAB实现EEMD-LSTM、LSTM集合经验模态分解结合长短期记忆神经网络时间序列预测对比

时序预测 | MATLAB实现EEMD-LSTM、LSTM集合经验模态分解结合长短期记忆神经网络时间序列预测对比

目录

    • 时序预测 | MATLAB实现EEMD-LSTM、LSTM集合经验模态分解结合长短期记忆神经网络时间序列预测对比
      • 效果一览
      • 基本介绍
      • 模型搭建
      • 程序设计
      • 参考资料

效果一览

1

2
3
4
5
6

基本介绍

时序预测 | MATLAB实现EEMD-LSTM、LSTM集合经验模态分解结合长短期记忆神经网络时间序列预测对比。
1.MATLAB实现EEMD-LSTM、LSTM时间序列预测对比;
2.时间序列预测 就是先eemd把原输入全分解变成很多维作为输入 再输入LSTM预测 ;
3.运行环境Matlab2018b及以上,输出RMSE、MAPE、MAE等多指标对比,
先运行main1_eemd_test,进行eemd分解;再运行main2_lstm、main3_eemd_lstm;再运行main4_compare,两个模型对比。

模型搭建

EEMD-LSTM和LSTM集合是两种用于时间序列预测的方法,它们结合了经验模态分解 (Empirical Mode Decomposition, EMD) 和长短期记忆神经网络 (Long Short-Term Memory, LSTM)。这两种方法都具有一定的优势和适用场景,下面对它们进行对比。
EEMD-LSTM:
EEMD是一种数据分解方法,通过将时间序列分解成多个固有模态函数 (Intrinsic Mode Functions, IMF) 和一个剩余项,将非线性和非平稳的时间序列转化为多个平稳的子序列。
EEMD能够将时间序列的相关信息提取到不同的IMF中,每个IMF代表了时间序列中的不同频率成分。
LSTM是一种适用于序列数据的循环神经网络,能够捕捉长期依赖关系,适用于处理时间序列数据。
EEMD-LSTM的基本思路是将原始时间序列通过EEMD进行分解,然后将每个IMF作为LSTM的输入,利用LSTM模型对每个IMF进行预测,最后将预测结果合并得到最终的预测结果。通过构建多个独立的LSTM模型,每个模型都有不同的初始化条件和参数设置。每个LSTM模型都会对时间序列进行训练和预测,最后将它们的预测结果进行综合,例如通过平均或加权平均的方式得到最终的预测结果。优势在于通过建立多个模型,可以利用不同的初始化条件和参数组合,增加了模型的多样性,提高了整体的预测准确性。
对比:EEMD-LSTM利用EEMD将时间序列分解成不同频率的子序列,然后利用LSTM对每个子序列进行预测,最后将预测结果合并。这种方法能够更好地处理非线性和非平稳的时间序列,能够提取出不同频率成分的信息。然而,EEMD的分解过程可能会引入一些噪声,并且需要额外的计算步骤。
LSTM集合通过构建多个LSTM模型,利用不同的初始化条件和参数组合,增加了模型的多样性,提高了预测准确性。这种方法相对简单,不需要进行数据分解,适用于一般的时间序列预测任务。

程序设计

  • 完整程序和数据获取方式1:私信博主回复MATLAB实现EEMD-LSTM、LSTM集合经验模态分解结合长短期记忆神经网络时间序列预测对比,同等价值程序兑换;
  • 完整程序和数据下载方式2(资源处直接下载):MATLAB实现EEMD-LSTM、LSTM集合经验模态分解结合长短期记忆神经网络时间序列预测对比;
  • 完整程序和数据下载方式3(订阅《LSTM长短期记忆神经网络》专栏,同时可阅读《LSTM长短期记忆神经网络》专栏内容,数据订阅后私信我获取):MATLAB实现EEMD-LSTM、LSTM集合经验模态分解结合长短期记忆神经网络时间序列预测对比,专栏外只能获取该程序
%% 创建混合LSTM网络架构
% 输入特征维度
numFeatures  = f_;
% 输出特征维度
numResponses = 1;
FiltZise = 10;
%  创建"LSTM"模型layers = [...% 输入特征sequenceInputLayer([numFeatures 1 1],'Name','input')sequenceFoldingLayer('Name','fold')% LSTM特征学习lstmLayer(50,'Name','lstm1','RecurrentWeightsInitializer','He','InputWeightsInitializer','He')% LSTM输出lstmLayer(optVars.NumOfUnits,'OutputMode',"last",'Name','bil4','RecurrentWeightsInitializer','He','InputWeightsInitializer','He')dropoutLayer(0.25,'Name','drop3')% 全连接层fullyConnectedLayer(numResponses,'Name','fc')regressionLayer('Name','output')    ];layers = layerGraph(layers);layers = connectLayers(layers,'fold/miniBatchSize','unfold/miniBatchSize');%% LSTM训练选项
% 批处理样本
MiniBatchSize =128;
% 最大迭代次数
MaxEpochs = 500;options = trainingOptions( 'adam', ...'MaxEpochs',500, ...'GradientThreshold',1, ...'InitialLearnRate',optVars.InitialLearnRate, ...'LearnRateSchedule','piecewise', ...'LearnRateDropPeriod',400, ...'LearnRateDropFactor',0.2, ...'L2Regularization',optVars.L2Regularization,...'Verbose',false, ...'Plots','none');%% 训练混合网络
net = trainNetwork(XrTrain,YrTrain,layers,options);

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/129036772?spm=1001.2014.3001.5502
[2] https://blog.csdn.net/kjm13182345320/article/details/128690229

相关文章:

时序预测 | MATLAB实现EEMD-LSTM、LSTM集合经验模态分解结合长短期记忆神经网络时间序列预测对比

时序预测 | MATLAB实现EEMD-LSTM、LSTM集合经验模态分解结合长短期记忆神经网络时间序列预测对比 目录 时序预测 | MATLAB实现EEMD-LSTM、LSTM集合经验模态分解结合长短期记忆神经网络时间序列预测对比效果一览基本介绍模型搭建程序设计参考资料 效果一览 基本介绍 时序预测 | …...

【软件工程】面向对象方法-RUP

RUP(Rational Unified Process,统一软件开发过程)。 RUP特点 以用况驱动的,以体系结构为中心的,迭代增量式开发 用况驱动 用况是能够向用户提供有价值结果的系统中的一种功能用况获取的是功能需求 在系统的生存周期中…...

Golang 的面向对象

文章目录 duck typingnil不一定是空接口组合代替继承接口转换回具体的类型使用switch匹配接口的原始类型 duck typing golang中实现某个接口不需要像其它语言使用 implemet 去继承实现,而是只要你的结构体包含接口所需的方法即可 package mainimport "fmt&qu…...

STABLE DIFFUSION模型及插件的存放路径

记录下学习SD的一些心得,使用的是秋叶大佬的集成webui,下载了之后点击启动器即可开启,文件夹中的内容如下 主模型存放在models文件下的stable-diffusion文件夹内,一些扩展类的插件是存放在extensions文件夹下...

Three.js 设置模型材质纹理贴图和修改材质颜色,材质透明度,材质网格

相关API的使用: 1 traverse (模型循环遍历方法) 2. THREE.TextureLoader(用于加载和处理图片纹理) 3. THREE.MeshLambertMaterial(用于创建材质) 4. getObjectByProperty(通过材…...

docker 安装mongodb 虚拟机安装mongodb

生产环境直接安装比较好,以及使用集群环境,本文仅测试交流使用,我用来写分布式im测试使用: nami-im: 分布式im, 集群 zookeeper netty kafka nacos rpc主要为gate(长连接服务) logic (业务&…...

在SockJS+Spring Websocket中convertAndSendToUser中的“用户”来自哪里?

目录 一、前言二、Principal三、使用 一、前言 我们知道可以使用客户端订阅的主题前缀从 stomp 服务器向客户端发送消息,例如 /topic/hello。我们还知道我们可以向特定用户发送消息,因为 spring 提供了convertAndSendToUser(username, destination, mes…...

【软件测试】我的2023面试经验谈

最近行业里有个苦涩的笑话:公司扛过了之前的三年,没扛过摘下最近的一年,真是让人想笑又笑不出来。年前听说政策的变化,大家都满怀希望觉得年后行情一片大好,工作岗位激增,至少能有更多的机会拥抱未来。然而…...

SpringBoot 整合JDBC

SpringData简介 Sping Data 官网:https://spring.io/projects/spring-data数据库相关的启动器 :可以参考官方文档:https://docs.spring.io/spring-boot/docs/2.6.5/reference/htmlsingle/#using-boot-starter 整合JDBC 创建测试项目测试数据…...

TypeScript使用npm安装报错问题

问题如图: 问题原因: 权限不足导致,可以输入如下命令: sudo npm install i -g typescript该命令会要求输入登录密码相关,稍等片刻,即可安装成功。检测安装的命令: tsc -v...

2023国赛数学建模思路 - 复盘:人力资源安排的最优化模型

文章目录 0 赛题思路1 描述2 问题概括3 建模过程3.1 边界说明3.2 符号约定3.3 分析3.4 模型建立3.5 模型求解 4 模型评价与推广5 实现代码 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 描述 …...

学习pytorch 3 tensorboard的使用

tensorboard的使用 1. 安装2. add_scalar 查看函数图形3. 查看结果4. add_image() 查看训练步骤中间结果的图片 1. 安装 pytorch conda环境 pip install tensorboard pip install opencv-python2. add_scalar 查看函数图形 常用来查看 train val loss等函数图形 from torch…...

Linux 命令篇

一、启动网络命令 ip addr 查看网卡信息 service network start 启动网卡 service network stop 关闭网卡 service network restart 重启网络 二、pwd 命令 查看当前目录的路径 linux 下所有的绝对路径都是从根目录 "/" 开始 root:是linux下root用户的根目…...

OpenCV-SIFT算法详解

系列文章目录 文章目录 系列文章目录引言一、高斯金字塔二、高斯差分金字塔三、特征点处理四、特征点描述子总结 引言 SIFT算法是为了解决图片的匹配问题,想要从图像中提取一种对图像的大小和旋转变化保持鲁棒的特征,从而实现匹配。这一算法的灵感也十分…...

Java中的接口到底是什么?

要说Java的【接口】,可以将其类比为现实生活中的一种约定或规范。在Java中,接口定义了一组方法的集合,但没有提供这些方法的具体实现。 你可以将接口看作是一个合同,它规定了一个类必须实现的一组方法。这些方法描述了类所需具备…...

Jpa与Druid线程池及Spring Boot整合(一): spring-boot-starter-data-jpa 搭建持久层

Jpa与Druid线程池及Spring Boot整合(一) Jpa与Druid线程池及Spring Boot整合(二):几个坑 附录官网文档:core.domain-events域事件 (一)Jpa与Druid连接池及Spring Boot整合作为持久层,遇到系列问题,下面一 一记录: pom.xml 文件中加入必须的…...

helm部署vmalert

先决条件 安装以下软件包:git, kubectl, helm, helm-docs,请参阅本教程。 在 CentOS 上启用 snap 并安装 helm 启用 snapd 使用以下命令将 EPEL 存储库添加到您的系统中: sudo yum install epel-release 按如下方式安装 Snap&#xff1…...

加工厂数字孪生3D可视化展示系统重塑管理模式

近年来“数字化转型”成立各行业聚焦的发展方向,在工业制造领域,智慧工业数字孪生可视化平台作为一种新型的技术手段,或将成为助力企业跑赢数字化转型最后一公里。 提高生产效率 传统的生产方式往往需要大量的人工干预,不仅耗时耗…...

php从静态资源到动态内容

1、从HTML到PHP demo.php:后缀由html直接改为php,实际上当前页面已经变成了动态的php应用程序脚本 demo.php: 允许通过<?php ... ?>标签,添加php代码到当前脚本中 php标签内部代码由php.exe解释, php标签之外的代码原样输出,仍由web服务器解析 <!DOCTYPE html>…...

JavaScript:模块化【CommonJS与ES6】

在 JavaScript 编程中&#xff0c;随着项目的复杂性增加&#xff0c;代码的组织和管理变得至关重要。模块化是一种强大的编程概念&#xff0c;它允许我们将代码划分为独立的模块&#xff0c;提高了可维护性和可扩展性。本文将详细介绍 CommonJS 和 ES6 模块&#xff0c;帮助你理…...

【JavaEE】-- HTTP

1. HTTP是什么&#xff1f; HTTP&#xff08;全称为"超文本传输协议"&#xff09;是一种应用非常广泛的应用层协议&#xff0c;HTTP是基于TCP协议的一种应用层协议。 应用层协议&#xff1a;是计算机网络协议栈中最高层的协议&#xff0c;它定义了运行在不同主机上…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式&#xff08;Singleton Pattern&#…...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...