多输入多输出 | Matlab实现SSA-BP麻雀搜索算法优化BP神经网络多输入多输出预测

多输入多输出 | Matlab实现SSA-BP麻雀搜索算法优化BP神经网络多输入多输出预测

目录

预测效果




基本介绍

Matlab实现SSA-BP麻雀搜索算法优化BP神经网络多输入多输出预测

1.data为数据集,10个输入特征,3个输出变量。

2.main.m为主程序文件。

3.命令窗口输出MBE、MAE和R2,可在下载区获取数据和程序内容。

程序设计

clike 复制代码
%%  数据归一化
[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 : ...
    inputnum * hiddennum + hiddennum + hiddennum * outputnum + outputnum);

往期精彩

MATLAB实现RBF径向基神经网络多输入多输出预测
MATLAB实现BP神经网络多输入多输出预测
MATLAB实现DNN神经网络多输入多输出预测

参考资料

1\] https://blog.csdn.net/kjm13182345320/article/details/116377961 \[2\] https://blog.csdn.net/kjm13182345320/article/details/127931217 \[3\] https://blog.csdn.net/kjm13182345320/article/details/127894261

相关推荐
2201_754918415 小时前
卷积神经网络--手写数字识别
人工智能·神经网络·cnn
橙色小博7 小时前
RBF(径向基神经网络)基础解析与代码实例:拟合任意函数
人工智能·pytorch·深度学习·神经网络·rbf
Evand J8 小时前
【MATLAB例程】AOA定位、AOA与TOA混合定位,二维环境下的对比,基站(锚点数量)自适应调整,附代码下载链接
开发语言·matlab
海洋与大气科学10 小时前
【matlab】地图上的小图
开发语言·数据库·matlab
小洛~·~13 小时前
《深度学习入门:基于Python的理论与实现》第四章神经网络的学习—上篇(损失函数登场)
python·深度学习·神经网络
Conan х14 小时前
第1 篇:你好,时间序列!—— 开启时间数据探索之旅
人工智能·python·神经网络·机器学习·信息可视化
人工智能那些事儿17 小时前
PyTorch入门:从零开始搭建你的第一个神经网络
人工智能·pytorch·深度学习·神经网络·机器学习·计算机视觉·自然语言处理
joekl17 小时前
深度学习神经网络全连接笔记day1
笔记·深度学习·神经网络
liruiqiang0518 小时前
神经网络优化 - 小批量梯度下降之批量大小的选择
人工智能·深度学习·神经网络·机器学习·梯度下降
RockLiu@80519 小时前
ECA 注意力机制:让你的卷积神经网络更上一层楼
人工智能·神经网络·cnn