失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 鲸鱼算法(WOA)优化的BP神经网络预测 WOA-BP回归预测 多输入单输出模型。

鲸鱼算法(WOA)优化的BP神经网络预测 WOA-BP回归预测 多输入单输出模型。

时间:2023-03-20 20:54:20

相关推荐

鲸鱼算法(WOA)优化的BP神经网络预测 WOA-BP回归预测 多输入单输出模型。

%% 清空环境变量

warning off % 关闭报警信息

close all % 关闭开启的图窗

clear% 清空变量

clc % 清空命令行

restoredefaultpath

%% 导入数据

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);

%% 节点个数

inputnum = size(p_train, 1); % 输入层节点数

hiddennum = 15; % 隐藏层节点数

outputnum = size(t_train, 1); % 输出层节点数

%% 构建网络

net = newff(p_train, t_train, hiddennum);

%% 设置训练参数

net.trainParam.epochs = 50; % 训练次数

net.trainParam.goal = 1e-4; % 目标误差

net.trainParam.lr= 0.01; % 学习率

net.trainParam.showWindow = 0; % 关闭窗口

%% 参数设置

fun = @getObjValue; % 目标函数

dim = inputnum * hiddennum + hiddennum * outputnum + ...

hiddennum + outputnum; % 优化参数个数

lb = -1 * ones(1, dim); % 优化参数目标下限

ub = 1 * ones(1, dim); % 优化参数目标上限

pop = 30; % 数量

Max_iteration = 20; % 最大迭代次数

%% 优化算法

[Best_score,Best_pos,curve] = WOA(pop, Max_iteration, lb, ub, dim, fun);

%% 把最优初始阀值权值赋予网络预测

w1 = Best_pos(1 : inputnum * hiddennum);

B1 = Best_pos(inputnum * hiddennum + 1 : inputnum * hiddennum + hiddennum);

w2 = Best_pos(inputnum * hiddennum + hiddennum + 1 : inputnum * hiddennum + hiddennum + hiddennum*outputnum);

B2 = Best_pos(inputnum * hiddennum + hiddennum + hiddennum * outputnum + 1 : ...

如果觉得《鲸鱼算法(WOA)优化的BP神经网络预测 WOA-BP回归预测 多输入单输出模型。》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。