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

时序预测 | MATLAB实现EMD-iCHOA+GRU基于经验模态分解-改进黑猩猩算法优化门控循环单元的时间序列预测

时序预测 | MATLAB实现EMD-iCHOA+GRU基于经验模态分解-改进黑猩猩算法优化门控循环单元的时间序列预测

目录

    • 时序预测 | MATLAB实现EMD-iCHOA+GRU基于经验模态分解-改进黑猩猩算法优化门控循环单元的时间序列预测
      • 预测效果
      • 基本介绍
      • 程序设计
      • 参考资料

预测效果

在这里插入图片描述

基本介绍

EMD-iCHOA+GRU基于经验模态分解-改进黑猩猩算法优化门控循环单元的时间序列预测
1.时间序列单列输入,如需多特征输入需额外付费。经过EMD分解后利用优化后的GRU对每个分量进行预测最后集成相加,算法新颖~EMD也可以换成其他分解方法,GRU也可以换成BiLSTM等其他预测模型。
2.iCHOA改进的黑猩猩优化算法改进点如下:
[1]利用Sobol序列初始化种群,增加种群的随机性和多样性,为算法全局寻优奠定基础;
[2]其次,引入基于凸透镜成像的反向学习策略,将其应用到当前最优个体上产生新的个体,提高算法的收敛精度和速度;
[3]最后,将水波动态自适应因子添加到攻击者位置更新处,增强算法跳出局部最优的能力。
3.直接替换Excel数据即可用,注释清晰,适合新手小白
4.附赠测试数据,输入格式如图3所示,可直接运行

程序设计

  • 完整程序和数据下载方式私信博主回复:MATLAB实现EMD-iCHOA+GRU基于经验模态分解-改进黑猩猩算法优化门控循环单元的时间序列预测
%%  参数设置
%% 训练模型
%% 模型预测%%  数据反归一化
T_sim1 = mapminmax('reverse', t_sim1, ps_output);
T_sim2 = mapminmax('reverse', t_sim2, ps_output);
function [IW,B,LW,TF,TYPE] = elmtrain(P,T,N,TF,TYPE)
% ELMTRAIN Create and Train a Extreme Learning Machine
% Syntax
% [IW,B,LW,TF,TYPE] = elmtrain(P,T,N,TF,TYPE)
% Description
% Input
% P   - Input Matrix of Training Set  (R*Q)
% T   - Output Matrix of Training Set (S*Q)
% N   - Number of Hidden Neurons (default = Q)
% TF  - Transfer Function:
%       'sig' for Sigmoidal function (default)
%       'sin' for Sine function
%       'hardlim' for Hardlim function
% TYPE - Regression (0,default) or Classification (1)
%--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
% Output
% IW  - Input Weight Matrix (N*R)
% B   - Bias Matrix  (N*1)
% LW  - Layer Weight Matrix (N*S)
%--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
% Example
% Regression:
% [IW,B,LW,TF,TYPE] = elmtrain(P,T,20,'sig',0)
% Y = elmtrain(P,IW,B,LW,TF,TYPE)
% Classification
% [IW,B,LW,TF,TYPE] = elmtrain(P,T,20,'sig',1)
% Y = elmtrain(P,IW,B,LW,TF,TYPE)
% See also ELMPREDICT
%--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
if nargin < 2error('ELM:Arguments','Not enough input arguments.');
end
%--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
if nargin < 3N = size(P,2);
end
%--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
if nargin < 4TF = 'sig';
end
%--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
if nargin < 5TYPE = 0;
end
%--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
if size(P,2) ~= size(T,2)error('ELM:Arguments','The columns of P and T must be same.');
end
[R,Q] = size(P);
if TYPE  == 1T  = ind2vec(T);
end
%--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[S,Q] = size(T);
% Randomly Generate the Input Weight Matrix
IW = rand(N,R) * 2 - 1;
% Randomly Generate the Bias Matrix
B = rand(N,1);
%--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
BiasMatrix = repmat(B,1,Q);
% Calculate the Layer Output Matrix H
tempH = IW * P + BiasMatrix;
%--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
switch TFcase 'sig'H = 1 ./ (1 + exp(-tempH));case 'sin'H = sin(tempH);case 'hardlim'H = hardlim(tempH);
end
% Calculate the Output Weight Matrix
LW = pinv(H') * T';
%--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

参考资料

[1] https://blog.csdn.net/article/details/126072792?spm=1001.2014.3001.5502
[2] https://blog.csdn.net/article/details/126044265?spm=1001.2014.3001.5502

相关文章:

时序预测 | MATLAB实现EMD-iCHOA+GRU基于经验模态分解-改进黑猩猩算法优化门控循环单元的时间序列预测

时序预测 | MATLAB实现EMD-iCHOAGRU基于经验模态分解-改进黑猩猩算法优化门控循环单元的时间序列预测 目录 时序预测 | MATLAB实现EMD-iCHOAGRU基于经验模态分解-改进黑猩猩算法优化门控循环单元的时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 EMD-iCHOAGR…...

FFmpeg 命令:从入门到精通 | FFmpeg 解码流程

FFmpeg 命令&#xff1a;从入门到精通 | FFmpeg 解码流程 FFmpeg 命令&#xff1a;从入门到精通 | FFmpeg 解码流程流程图FFmpeg 解码的函数FFmpeg 解码的数据结构补充小知识 FFmpeg 命令&#xff1a;从入门到精通 | FFmpeg 解码流程 本内容参考雷霄骅博士的 FFmpeg 教程。 流…...

连接虚拟机工具推荐

连接虚拟机工具推荐 连接虚拟机的工具有很多种&#xff0c;以下是一些常用的推荐&#xff1a; PuTTY&#xff1a;这是一个非常常用的SSH和telnet客户端&#xff0c;适用于Windows系统。它允许你在本地机器上通过命令行接口远程登录到虚拟机。 SecureCRT&#xff1a;这是一个支…...

万字详解HTTP协议面试必备技能

目录 一、HTTP 是什么 二、理解 "应用层协议" 2.1理解 HTTP 协议的工作过程 2.2HTTP 协议格式 2.3抓包工具的使用 2.4抓包工具的原理 2.5抓包结果 2.5.1HTTP请求 2.5.2HTTP响应 2.6协议格式总结 三、HTTP 请求 (Request) 3.1认识 URL 3.1.1URL 基本格式 …...

Debian跳过grub页面

nano /etc/default/grub将GRUB_TIMEOUT的值改为0 将GRUB_CMDLINE_LINUX_DEFAULT的值改为"quiet splash" 如果要禁用开局日志的话&#xff0c;将GRUB_CMDLINE_LINUX_DEFAULT的值改为"quiet splash loglevel0" update-grub...

【已解决】RuntimeError Java gateway process exited before sending its port number

RuntimeError: Java gateway process exited before sending its port number 问题 思路 &#x1f3af;方法一 在代码前加入如下代码&#xff08;如图&#xff09;&#xff1a; import os os.environ[‘JAVA_HOME’] “/usr/local/jdk1.8.0_221” # 记得把地址改成自己的 …...

数据结构与算法-循环链表、双向链表

我们这里接着上一篇单链表继续往下深入学习循环链表、双向链表。 链表 &#x1f388;3.循环链表&#x1f52d;3.1循环链表的概念&#x1f52d;3.2循环链表的基本操作&#x1f50e;3.2.1创建空表&#x1f50e;3.2.2插入操作&#x1f50e;3.2.3删除操作 &#x1f388;4.双向链表&…...

javascript中依次输出元素并不断循环实现echarts柱图动画效果

循环来遍历数组并输出其中的元素 在JavaScript中&#xff0c;你可以使用循环来遍历数组并输出其中的元素。如果你想要依次输出6个元素并不断循环&#xff0c;可以使用如下的代码&#xff1a; let arr [/* 你的数组 */];for (let i 0; i < arr.length; i) {console.log(a…...

互联网Java工程师面试题·Memcached篇·第一弹

目录 1、Memcached 是什么&#xff0c;有什么作用&#xff1f; 1.1 memcached 服务在企业集群架构中有哪些应用场景&#xff1f; 1.1.1 作为数据库的前端缓存应用 1.1.2 作业集群的 session 会话共享存储 2、Memcached 服务分布式集群如何实现&#xff1f; 3、Memcach…...

git 详解-提升篇

git 冷门使用 承接上一篇 《git 进阶篇》&#xff0c;简单讲解 git 冷门使用方法。 码农常规使用工具 git 偶尔也有非常规操作。例如&#xff1a;提交代码时同事已经更新&#xff0c;但又不想回退本地补丁&#xff1b;或者已经提交补丁需要变更提交日志信息。 作者&#xff1…...

RPA的安全风险及应对策略

RPA已经深度革新了工作流程&#xff0c;大大提升效率并减少了人为错误&#xff0c;使企业运营更加高效。据预测&#xff0c;至2030年&#xff0c;全球RPA市场将以39.9%的复合年增长率持续发展&#xff0c;这显示了RPA对企业生产力的巨大推动力。 RPA能够承担人类的繁琐工作&am…...

数据结构与算法--贪心算法

数据结构与算法-贪心算法 1 贪心算法的概念 2 贪心算法的套路 3 贪心算法常用技巧 4 会议问题 5 字典序问题 1 贪心算法的概念 在某一标准下,优先考虑最满足标准的样本,最后考虑不满足标准的样本,最终得到一个答案的算法,叫做贪心算法 也就是说 不是从整体上加以考虑,所…...

【Unity3D】UGUI物体世界坐标转屏幕坐标问题

如题&#xff1a; UGUI物体世界坐标转屏幕坐标问题&#xff0c;获取UI(UGUI)屏幕坐标问题等相关问题 思路&#xff1a;必须使用Canvas身上的Camera&#xff0c;进行Camera.WorldToScreenPoint(UI物体的世界坐标Vector3)&#xff0c;会返回一个Vector3(x,y,z)&#xff0c;我们要…...

代码随想录二刷day51

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣309. 买卖股票的最佳时机含冷冻期二、力扣714. 买卖股票的最佳时机含手续费 前言 一、力扣309. 买卖股票的最佳时机含冷冻期 class Solution {public …...

接口自动化测试框架(pytest+allure+aiohttp+ 用例自动生成)

近期准备优先做接口测试的覆盖&#xff0c;为此需要开发一个测试框架&#xff0c;经过思考&#xff0c;这次依然想做点儿不一样的东西。 接口测试是比较讲究效率的&#xff0c;测试人员会希望很快能得到结果反馈&#xff0c;然而接口的数量一般都很多&#xff0c;而且会越来越…...

[Python入门教程]01 Python开发环境搭建

Python开发环境搭建 本文介绍python开发环境的安装&#xff0c;使用anaconda做环境管理&#xff0c;VS code写代码。搭建开发环境是学习的第一步&#xff0c;本文将详细介绍anaconda和vs code的安装过程&#xff0c;并测试安装结果。 视频教程链接&#xff1a;https://www.bil…...

第四章:最新版零基础学习 PYTHON 教程(第二节 - Python 数据类型—Python 字符串、列表、元组、迭代)

在在上一节文章中,我们了解了 Python 的基础知识。现在,我们继续了解更多 Python 概念。 Python 中的字符串: 字符串是字符序列,可以是字母、数字和特殊字符的组合。在Python中可以使用单引号、双引号甚至三引号来声明它。这些引号不是字符串的一部分,它们仅定义字符串…...

react框架与vue框架的区别

React和Vue都是前端开发中常用的框架&#xff0c;它们有一些不同的特性和优点。下面是它们的主要区别&#xff1a; 数据流和数据绑定&#xff1a;React是一种单向数据流的框架&#xff0c;而Vue则是双向数据绑定的框架。这意味着在React中&#xff0c;数据从组件的state属性流…...

C++_pen_静态与常量

成员 常成员、常对象&#xff08;C推荐使用 const 而不用#define,mutable&#xff09; const 数据成员只在某个对象生存周期内是常量&#xff0c;而对于整个类而言却是可变的&#xff08;static除外&#xff09; 1.常数据成员&#xff08;构造函数初始化表赋值&#xff09; c…...

ToDoList使用自定义事件传值

MyTop与MyFooter与App之间传递数据涉及到的就是子给父传递数据&#xff0c;MyList和MyItem与App涉及到爷孙传递数据。 之前的MyTop是使用props接收App传值&#xff0c;然后再在methods里面调用&#xff0c;现在使用自定义事件来处理子组件和父组件之间传递数据。 图是之前的…...

基于SSM的家庭财务管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…...

OpenHarmony Trace的使用

背景&#xff1a; 近期很多开发者反馈OpenHarmony三方库Imageknife有性能问题&#xff1a;连续拖动很多张图片时&#xff0c;界面有明显的卡顿现象。 因为对这个三方库的源码并不了解&#xff0c;因此需要了解目前Imageknife渲染花费了多少时间&#xff0c;最初想的是只有通过…...

文件上传笔记

一、上传的简单绕过&#xff1a; 1、若是上传的文件只在前端的代码中进行了过滤&#xff1a; &#xff08;1&#xff09;可以直接在开发者工具中删除相关代码&#xff1a; &#xff08;2&#xff09;也可以通过 burpsuite 绕过: 上传时&#xff0c;先提前修改 php 文件的后缀…...

计算机网络 第三章数据链路层

参考视频&#xff1a;计算机网络 文章目录 1、数据链路层概述2、链路层基本概念&#xff1a;节点3、链路层基本概念&#xff1a;链路与数据链路、帧4、封装成帧&#xff1a;字符计数法和字符填充法5、封装成帧&#xff1a;零比特填充法6、封装成帧&#xff1a;违规编码法7、差…...

浅析如何在抖音快速通过新手期并积累粉丝

抖音是一款非常受欢迎的短视频分享平台&#xff0c;它提供了一个快速成名和积累粉丝的机会。对于新手来说&#xff0c;通过四川不若与众总结的以下几个步骤可以帮助你快速通过抖音的新手期。 首先&#xff0c;确定你的内容定位。在抖音上&#xff0c;有各种各样的内容类型&…...

英文论文实例赏析——如何写前言?

写作与实验、统计一样重要 研究生的学习往往会遵循这样的过程&#xff1a;实验——数据分析——写作。虽然写作是最后进行的&#xff0c;但写作的学习这应该和实验的学习、数据分析的学习保持同步&#xff0c;因为写作与统计和实验技能一样&#xff0c;是科研工具箱的必…...

springBoot -md

法1 Editor.md https://blog.csdn.net/weixin_42039228/article/details/123472875 CREATE TABLE article ( id int(10) NOT NULL AUTO_INCREMENT COMMENT int文章的唯一ID, author varchar(50) NOT NULL COMMENT 作者, title varchar(100) NOT NULL COMMENT 标题, content l…...

从0开始学go第五天

gin框架返回JSON package mainimport ("net/http""github.com/gin-gonic/gin" )func main() {r : gin.Default()r.GET("/json", func(c *gin.Context) {//用map序列化//方法一&#xff1a;用map&#xff0c;后面用接口类型// data : map[string…...

大厂技术面试中的手撕代码应该如何准备?

文章目录 手撕代码是什么为什么要考察手撕代码如何准备手撕代码手撕代码注意事项华为OD算法/大厂面试高频题算法练习冲刺训练 不管是秋招还是社招&#xff0c;互联网大厂的技术面试中的手撕代码这一部分总是绕不过去的一关。不只是后端开发和算法岗&#xff0c;现在就连前端、运…...

阿里影业+大麦,开启大文娱新纪元?

被“精心呵护”长达十年后&#xff0c;阿里大文娱在今年终于踏上了关键节点。 3月份&#xff0c;阿里“16N”组织大变革后&#xff0c;大文娱集团独自上路。8月&#xff0c;“分家”后的第一份财报显示&#xff0c;阿里大文娱集团成功大幅扭亏&#xff0c;实现了首次季度经调整…...

网站增加导航栏/百度推广怎么登陆

嵌入式Linux下NAND flash上根文件系统构建嵌入式Linux下NAND flash上根文件系统构建摘要&#xff1a;针对嵌入式Linux操作系统&#xff0c;通常选择NAND Flash烧录根文件系统的情况。说明了常用嵌入式文件系统的类型及NANDflash的特点&#xff1b;通过在三星的ARM9 2410S平台上…...

广告联盟的网站怎么做/新疆今日头条新闻

①linuxpostfixextmaildovecot搭建邮件服务器②mysql主从复制③zabbix开启中文语言zabbix解决中文乱码问题④PXEKickStart无人值守安装RHEL⑤Tomcat 安全配置与性能优化转载于:https://blog.51cto.com/henxiangni/1609275...

知名的教育行业网站开发/百度网盘客服人工电话

高斯分布 输入数据:X(x1,x2,...,xn)T(x1Tx2T...xnT)X(x_1,x_2,...,x_n)^T\begin{pmatrix} x_1^T\\ x_2^T\\ ... \\ x_n^T\\ \end{pmatrix}X(x1​,x2​,...,xn​)T⎝⎜⎜⎛​x1T​x2T​...xnT​​⎠⎟⎟⎞​ xi∈Rp,xi∼iidN(μ,Σ),θ(μ,Σ)x_i\in R^p,x_i\ \sim^{iid}\ N(μ…...

为什么用dw做的网站打不开/怎么做电商生意

【题目链接】&#xff1a;click here~~ 时间限制:20000ms单点时限:1000ms内存限制:256MB描写叙述 且说上一周的故事里&#xff0c;小Hi和小Ho费劲心思最终拿到了茫茫多的奖券&#xff01;而如今&#xff0c;最终到了小Ho领取奖励的时刻了。 小Ho如今手上有M张奖券&#xff0c;而…...

手机免费平面设计软件/南昌seo网站排名

由于信道管理器在客户端和服务端所起的不同作用&#xff0c;分为信道监听器和信道工厂。和服务端的信道监听其相比&#xff0c;处于客户端的信道工厂显得简单。从名称就可以看得出来&#xff0c;信道工厂的作用就是单纯的创建用于消息发送的信道。我们先来看看与信道工厂相关的…...

电子商务网站软件建设的/手机百度下载免费安装

据说某些公司需要员工们不仅要写好程序&#xff0c;而且要写好API&#xff0c;对于一些编程大神来说&#xff0c;写API是一件麻烦的事情&#xff0c; 其实Eclipse能够轻松地生成API来忽悠人&#xff0c;尤其是你讨厌的根本不会写代码的上司。 当然&#xff0c;这些API根本就不…...