WOA-GRU多输入回归预测 | 鲸鱼优化算法-门控循环单元神经网络 | Matlab

目录

一、程序及算法内容介绍:

基本内容:

亮点与优势:

 二、实际运行效果:

 三、部分程序:

四、完整程序下载:


一、程序及算法内容介绍:

基本内容:

  • 本代码基于Matlab平台编译,将WOA(鲸鱼群算法)与GRU(门控循环单元神经网络)结合,进行多输入数据回归预测

  • 输入训练的数据包含7个特征1个响应值,即通过7个输入值预测1个输出值(多变量回归预测,个数可自行指定)

  • 归一化训练数据,提升网络泛化性

  • 通过WOA算法优化GRU网络的学习率、神经元个数参数,记录下最优的网络参数

  • 训练GRU网络进行回归预测,实现更加精准的预测

  • 迭代计算过程中,自动显示优化进度条,实时查看程序运行进展情况

  • 自动输出多种多样的的误差评价指标,自动输出大量实验效果图片

亮点与优势:

  • 注释详细,几乎每一关键行都有注释说明,适合小白起步学习

  • 直接运行Main函数即可看到所有结果,使用便捷

  • 编程习惯良好,程序主体标准化,逻辑清晰,方便阅读代码

  • 所有数据均采用Excel格式输入,替换数据方便,适合懒人选手

  • 出图详细、丰富、美观,可直观查看运行效果

  • 附带详细的说明文档(下图),其内容包括:算法原理+使用方法说明

 二、实际运行效果:

 三、部分程序:

clc;
clear;
warning off;
%% 导入数据
Data = table2array(readtable("数据集.xlsx"));
% 本例数据集中包含:
% 1. 总共357个样本(每一行表示一个样本)
% 2. 每个样本12个特征值(即前12列每一列表示样本的一个特征,即输入的变量)
% 3. 每个样本1个响应值(第13列为表示样本的响应值,即被预测的变量)%% 划分训练集和测试集
Temp = randperm(size(Data,1)); % 打乱数据的顺序,提升模型的泛化性。
InPut_num = 1:1:12; % 输入特征的列数,数据表格中前12列为输入值,因此设置为1:1:12,若前5个为输入则设置为1:1:5
OutPut_num = 13; % 输出响应列数,本例仅一个响应值,为数据表格中第13列,若多个响应值参照上行数据格式设置为x:1:y% 选取前327个样本作为训练集,后30个样本作为测试集,即(1:327),和(328:end)
Train_InPut = Data(Temp(1:327),InPut_num); % 训练输入
Train_OutPut = Data(Temp(1:327),OutPut_num); % 训练输出
Test_InPut = Data(Temp(328:end),InPut_num); % 测试输入
Test_OutPut = Data(Temp(328:end),OutPut_num); % 测试输出%% 数据归一化
% 将输入特征数据归一化到0-1之间
[~, Ps] = mapminmax([Train_InPut;Test_InPut]',0,1); 
Train_InPut = mapminmax('apply',Train_InPut',Ps);
Test_InPut = mapminmax('apply',Test_InPut',Ps);

四、完整程序下载:

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(转)已有 vue2 环境下安装 vue3 和vue2并新项目构建

vue2 全局安装过,废话不多说,直接装 vue3 吧 安装 vue3.X 不再需要安装 vue/cli3 的脚手架,而是通过官方推荐的 Vite 开发构建工具快速搭建,具体可查看官方文档 https://vue3js.cn/docs/zh/guide/installation.html#%E5%91%BD%E4…

第六节:使用SMB开发WebService

一、概述 webservice在日常开发中是常用的接口形式,SMB在设计之初就将webservice作为重要的代理协议。在组件库中提供了webservice input和webservice output两个组件,分别用于发布接口和调用接口。 二、发布webservice 在csdnProject工程中创建名为c…

C语言从入门到实战————数组和指针的深入理解

前言 在C语言中,数组和指针有的密切得联系,因为数组名本身就相当于一个指针常量。指针是一个变量,专门用来存储另一个变量的内存地址,通过这个地址可以访问和操作该变量的值,同时也包括数组。数组是一组连续存储的同类…

Dynamic Capacity Service for Improving CXL Pooled Memory Efficiency——论文阅读

IEEE Micro 2023 Paper CXL论文阅读笔记整理 问题 传统系统面对大容量和高带宽内存需求时存在的挑战: 内存墙。计算系统的最新趋势表明,内存性能的提高没有跟上计算性能的步伐。扩展内存带宽和容量的一个可行解决方案是增加中央处理器(CPU&…

linux板子vscode gdb 远程调试

板子:hi3556v200 交叉编译工具:arm-himix200-linux 主机:win10虚拟机的ubuntu16.4 gdb:gdb-8.2.tar.gz 1.在ubuntu交叉编译gdb(Remote g packet reply is too long解决) 建议修改gdb8.2/gdb目录下面的remote.c解决…

ConcurrentHashMap 为什么不能插入 null?

1、典型回答 简单来说,ConcurrentHashMap 不允许插入 null 值是JDK 源码规定的,如下源码所示(此源码基于JDK 1.8): 从上述源码可以看出,在添加方法的第一句就加了判断:如果 key 值为 null 或者是 value 值为 null&…

电梯机房秀 系列二

上次小伍带大家看了部分机房的照片,并且简单介绍了一下电梯能量回馈装置,小伙伴们表示很新奇,没看够,今天小伍又来了,带大家看一下电梯能量回馈装置到底安装在电梯什么位置。跟着小伍去看看吧。Lets go! 电…

解决提示无法使用内置管理员账户打开Microsoft Edge的方法

图片出自链接:解决提示无法使用内置管理员账户打开Microsoft Edge的方法

如何识别代理IP的真实地理位置

目录 一、代理IP的概述 二、识别代理IP真实地理位置的方法 IP数据库查询 反向DNS查询 网络延迟测量 三、案例分析与代码实现 四、总结与展望 随着网络技术的不断发展,代理IP的使用越来越广泛,但这也给网络安全和数据分析带来了挑战。代理IP可以隐…

我记不住的那些命令-xxdod

背景: 这里记录一下具体的xxd和od命令参数和使用方法,我想我肯定是记不住这些参数的。 零、文件 我们这里有一个示例文件README.txt,内容如下图所示: 一、xxd(查看、编辑二进制文件) 1. 十六进制显示(默认) 我们发现上面的显…

【WPF】Canvas的Path画线 颜色值偏差和面积不准确

图像中左上角2个红色线段 颜色值有偏差&#xff0c;且线段高度不准确&#xff08;我设置的是Red,1&#xff09;。 解决方案&#xff1a; 1、PathGeometry PathFigure LineSegment 2、Stretch设置Fill <Path Stretch"Fill" Stroke"Red"…

macOS - 获取硬件设备信息

文章目录 1、CPU获取方式 一&#xff1a; system_profiler获取方式二&#xff1a;sysctl&#xff0c; machdepmachdep 2、内存3、硬盘4、显卡5、声卡6、光驱7、系统序列号8、型号标识符9、UUID 等信息 10. 计算机名称 1、CPU 获取方式 一&#xff1a; system_profiler % syst…