%% 清空环境变量
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.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.