回归预测 | Matlab实现GWO-ESN基于灰狼算法优化回声状态网络的多输入单输出回归预测

回归预测 | Matlab实现GWO-ESN基于灰狼算法优化回声状态网络的多输入单输出回归预测

目录

    • 回归预测 | Matlab实现GWO-ESN基于灰狼算法优化回声状态网络的多输入单输出回归预测
      • 预测效果
      • 基本介绍
      • 程序设计
      • 参考资料

预测效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

基本介绍

1.Matlab实现GWO-ESN基于灰狼算法优化回声状态网络的多输入单输出回归预测(完整源码和数据);
2.数据集为excel,多输入单输出数据集,运行主程序main.m即可,其余为函数文件,无需运行;
3.优化的参数为:三个参数,储备池规模,学习率,正则化系数。命令窗口输出RMSE、MAPE、MAE、R2等评价指标;
4.运行环境Matlab2018b及以上;
5.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。

程序设计

  • 完整源码和数据获取方式资源处直接下载Matlab实现GWO-ESN基于灰狼算法优化回声状态网络的多输入单输出回归预测。
%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行%%  数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input);[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);%%  参数设置
fun = @getObjValue;                 % 目标函数
dim = 3;                            % 优化参数个数
lb  = [100, 0.001, 0.001];          % 优化参数目标下限(储备池规模,学习率,正则化系数)
ub  = [800, 2.000, 0.100];          % 优化参数目标上限(储备池规模,学习率,正则化系数)
pop = 10;                           % 数量
Max_iteration = 20;                 % 最大迭代次数
Init = 30;                          % 初始化储备池(样本数)%%  优化算法
[Best_score,Best_pos, curve] = GWO(pop, Max_iteration, lb, ub, dim, fun);%%  获取最优参数
hidden = round(Best_pos(1));             % 储备池规模
lr     = Best_pos(2);             % 学习率(更新速度)
reg    = Best_pos(3);             % 正则化系数%%  训练模型
net = esn_train(p_train, t_train, hidden, lr, Init, reg);%%  预测
t_sim1 = esn_sim(net, p_train);
t_sim2 = esn_sim(net, p_test );%%  数据反归一化
T_sim1 = mapminmax('reverse', t_sim1, ps_output);
T_sim2 = mapminmax('reverse', t_sim2, ps_output);%%  均方根误差
error1 = sqrt(sum((T_sim1 - T_train).^2) ./ M);
error2 = sqrt(sum((T_sim2 - T_test ).^2) ./ N);%%  适应度曲线
figure
plot(1 : length(curve), curve, 'LineWidth', 1.5);
title('SSA-ESN', 'FontSize', 10);
xlabel('迭代次数', 'FontSize', 10);
ylabel('适应度值', 'FontSize', 10);
grid on%%  绘图
%% 测试集结果
figure;
plotregression(T_test,T_sim2,['回归图']);
figure;
ploterrhist(T_test-T_sim2,['误差直方图']);
%%  均方根误差 RMSE
error1 = sqrt(sum((T_sim1 - T_train).^2)./M);
error2 = sqrt(sum((T_test - T_sim2).^2)./N);%%
%决定系数
R1 = 1 - norm(T_train - T_sim1)^2 / norm(T_train - mean(T_train))^2;
R2 = 1 - norm(T_test -  T_sim2)^2 / norm(T_test -  mean(T_test ))^2;%%
%均方误差 MSE
mse1 = sum((T_sim1 - T_train).^2)./M;
mse2 = sum((T_sim2 - T_test).^2)./N;% CSDN 机器学习之心

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/128577926?spm=1001.2014.3001.5501
[2] https://blog.csdn.net/kjm13182345320/article/details/128573597?spm=1001.2014.3001.5501

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

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

相关文章

vscode设置成中文界面

在Visual Studio Code(VSCode)中设置中文界面,你可以采用以下几种方法,以下是详细步骤: 方法一:通过设置菜单设置中文 打开VSCode:首先,确保你已经打开了VSCode软件。进入设置&…

DevOps学习回顾01-技能发展路线-岗位能力-体系认知(射箭和拉弓的区别)

事为先,人为重–事在人为 参考来源: 极客时间专栏:DevOps实战笔记,作者:石雪峰 课程链接:https://time.geekbang.org/column/intro/235 时代的典型特征 VUCA VUCA 是指易变性(Volatility&…

关于MySQL 中的全局事务标识符GTID

目录 1.GTID 的管理2.GTID 的影响3.GTID 的自动清理二进制日志的过期和清除GTID 的清理保证数据一致性GTID 执行点的维护 4.结论 MySQL 中的全局事务标识符(GTID)确实会随着事务的不断执行而增长,但这并不意味着它会无限增长而导致问题。GTID…

【MySQL】聊聊数据库是如何保证数据不丢的

对于一个存储系统来说,其中比较关键的核心组件包含,网络、存储模型、持久化、数据结构等。而数据如何保证不丢失,对于不同的存储系统来说,比如Redis采用AOF和RDB的方式进行混合使用,而MySQL采用日志进行保证。也就是re…

MyBatis使用Demo

文章目录 01、Mybatis 意义02、Mybatis 快速入门04、Mapper 代理开发05、Mybatis 配置文件07、查询所有&结果映射08、查询-查看详情09、查询-条件查询10、查询-动态条件查询多条件动态查询单条件动态查询 11、添加&修改功能添加功能修改功能 12、删除功能删除一个批量删…

ubuntu 18.04 安装vnc

如何在Ubuntu 18.04安装VNC | myfreax sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils sudo apt install tigervnc-standalone-server tigervnc-common vncserver sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils sudo apt ins…

Redis 键(key)

Redis 键(key) Redis是一种高性能的键值对数据库,它支持多种类型的数据结构,如字符串、列表、集合、散列表等。在Redis中,键(key)是数据存储的基础,每个键都关联着一个值(value)。本文将详细介绍Redis中的键(key)相关知识&#x…

滴滴出行 大数据研发实习生【继任】

大数据研发实习生JD 职位描述 1、负责滴滴核心业务的数据建设,设计并打造适应滴滴一站式出行平台业务特点的数仓体系。 2、负责抽象核心业务流程,沉淀业务通用分析框架,开发数仓中间层和数据应用产品。 3、负责不断完善数据治理体系&#xff…

Excel报表

(Apache POI) 入门案例 P164 使用POI需要导入下面2个坐标&#xff1a; <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId> </dependency> <dependency><groupId>org.apache.poi</groupId>&…

基于Python的数据可视化大屏的设计与实现

基于Python的数据可视化大屏的设计与实现 Design and Implementation of Python-based Data Visualization Dashboard 完整下载链接:基于Python的数据可视化大屏的设计与实现 文章目录 基于Python的数据可视化大屏的设计与实现摘要第一章 导论1.1 研究背景1.2 研究目的1.3 研…

uni-app 小程序:显示图片并且点击图片展示大图

效果如图所示&#xff1a; 在页面显示一张图片&#xff0c;然后点击该张图片后显示大图。点击大图就可以关闭大图。 实现的主要代码如下&#xff1a; <image :src"imgpath" mode"aspectFill" click"imgPreview(imgArr)"></image> 其…

Spring Web MVC之过滤器Filter和拦截器HandlerInterceptor的区别和用法

作用时机不一样 Spring 框架有一个很重要的类DispatcherServlet。这个类继承了HttpServlet&#xff0c;HttpServlet实现了Servlet接口。相当于图片中的Servlet。所有和Spring框架相关配置&#xff0c;例如注解、xml配置、其他数据库连接配置、bean配置、拦截器配置等其他配置&…

CleanMyMacX4.15.4如何优化苹果电脑系统缓存,告别MacBook卡顿,提升mac电脑性能

你是否曾为苹果电脑存储空间不够而烦恼&#xff1f;是否曾因系统运行缓慢而苦恼&#xff1f;别担心&#xff0c;今天我要给大家种草一个神器——CleanMyMac&#xff01;这款软件可以帮助你轻松解决苹果电脑的种种问题&#xff0c;让你的电脑焕然一新&#xff01; 让我来给大家介…

【iOS】编译二进制文件说明

编译二进制文件说明 如何生成文件路径文件说明第一部分&#xff1a;.o文件第二部分&#xff1a;link第三部分&#xff1a;Segment第四部分&#xff1a;Symbol 如何生成 使用Xcode进行编译 &#xff0c;会生成二进制相关文件&#xff0c;可以更详细看产物的布局 项目Target -&…

Python烟雾液体弹性力微分模拟 | 出租车往返速度微分计算

&#x1f3af;要点 &#x1f3af;弹性连续力学 | &#x1f3af;弱可压缩液体 | &#x1f3af;不可压缩流体&#xff08;烟雾&#xff09;| &#x1f3af;高度场浅水波动 | &#x1f3af;质量弹簧系统地面碰撞 | &#x1f3af;前向欧拉方法台球刚体运动&#xff0c;动量和动能守…

区块链之快照

定义 区块链快照是区块链技术中一个非常重要的概念,它可以帮助区块链系统提高性能和数据管理效率。 什么是区块链快照 区块链快照是指在某个时间点对整个区块链的状态进行保存和备份的过程。 快照会记录区块链上所有账户的余额、合约状态等信息,并将其序列化存储起来。 这样…

Android中的消息异步处理机制及实现方案

基本介绍 当我们需要执行复杂的计算逻辑&#xff0c;网络请求等耗时操作时&#xff0c;服务器可能不会立即响应请求&#xff0c;如果不将这类操作放在子线程中运行&#xff0c;就会导致主线程被阻塞住&#xff0c;从而影响用户的使用体验如果想要更新应用程序中的UI控件&#…

什么是贸易顺差和贸易逆差?

中文版 贸易顺差和贸易逆差 贸易顺差和贸易逆差是衡量一个国家对外贸易状况的重要指标。它们分别表示一个国家在一定时期内的商品和服务出口总额与进口总额之间的差额。 1. 贸易顺差 (Trade Surplus) 定义&#xff1a;当一个国家的出口总额大于进口总额时&#xff0c;就产生…

web前端教程全套:从入门到精通的全方位探索

web前端教程全套&#xff1a;从入门到精通的全方位探索 在数字时代的浪潮中&#xff0c;Web前端技术作为连接用户与数字世界的桥梁&#xff0c;日益受到重视。本文将围绕Web前端教程的全套内容&#xff0c;从四个方面、五个方面、六个方面和七个方面展开深入剖析&#xff0c;旨…

ASM字节码操纵框架实现AOP

前言 使用ASM改写字节码实现Aop&#xff0c;是最快的Aop实现方式。 我猜你肯定懂AOP 凡是学习Spring框架&#xff0c;必然会深入了解AOP的原理以及实现。这里做下简单总结 Spring默认采取的是动态代理机制实现AOP&#xff0c;当动态代理不可用时&#xff08;代理类无接口&a…