本文主要是介绍回归预测 | Matlab实现BES-ESN秃鹰搜索算法优化回声状态网络多输入单输出回归预测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
回归预测 | Matlab实现BES-ESN秃鹰搜索算法优化回声状态网络多输入单输出回归预测
目录
- 回归预测 | Matlab实现BES-ESN秃鹰搜索算法优化回声状态网络多输入单输出回归预测
- 效果一览
- 基本介绍
- 程序设计
- 参考资料
效果一览
基本介绍
1.Matlab实现BES-ESN秃鹰搜索算法优化回声状态网络多输入单输出回归预测(完整源码和数据);
2.数据集为excel,多输入单输出数据集,运行主程序main.m即可,其余为函数文件,无需运行;
3.优化的参数为:三个参数,储备池规模,学习率,正则化系数。命令窗口输出RMSE、MAPE、MAE、R2等评价指标;
4.运行环境Matlab2018b及以上;
5.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。
程序设计
- 完整程序和数据下载私信博主回复回归预测 | Matlab实现BES-ESN秃鹰搜索算法优化回声状态网络多输入单输出回归预测。
%% 清空环境变量
warning off % 关闭报警信息
close all % 关闭开启的图窗
clear % 清空变量
clc % 清空命令行
tic
%% 导入数据
P_train = xlsread('data','training set','B2:G191')';
T_train= xlsread('data','training set','H2:H191')';
% 测试集——44个样本
P_test=xlsread('data','test set','B2:G45')';
T_test=xlsread('data','test set','H2:H45')';
%% 划分训练集和测试集
M = size(P_train, 2);
N = size(P_test, 2);%% 数据归一化
[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_pos, curve,Best_score] = BES(pop, Max_iteration, lb, ub, dim, fun);%% 获取最优参数
hidden = round(Best_pos.pos(1)); % 储备池规模
lr = Best_pos.pos(2); % 学习率(更新速度)
reg = Best_pos.pos(3); % 正则化系数
参考资料
[1] https://blog.csdn.net/kjm13182345320/article/details/128163536?spm=1001.2014.3001.5502
[2] https://blog.csdn.net/kjm13182345320/article/details/128151206?spm=1001.2014.3001.5502
这篇关于回归预测 | Matlab实现BES-ESN秃鹰搜索算法优化回声状态网络多输入单输出回归预测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!