700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 麻雀算法(SSA)优化的BP神经网络预测 SSA-BP回归预测 多输入单输出模型。

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

时间:2024-04-17 15:17:57

相关推荐

麻雀算法(SSA)优化的BP神经网络预测 SSA-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 = 20; % 数量

Max_iteration = 20; % 最大迭代次数

%% 优化算法

[Best_score,Best_pos,curve] = SSA(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 : ...

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