【BP分类】基于粒子群优化BP神经网络PSO-BP实现多特征分类预测(含分类图)附MATLAB代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信       无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机 

⛄ 内容介绍

针对传统BP神经网络存在学习效率低、收敛速度慢和容易陷入局部极小值的问题,提出一种基于改进的PSO来优化BP神经网络的方法。实验结果表明,该方法较好地解决了传统BP神经网络易陷入局部极小值的问题,提高了算法的收敛速度和稳定性。

⛄ 部分代码

%%warning('off');% Data Loadingclear;netdata=load('fortest2.mat');netdata=netdata.FinalReady;% Data and Labelnetwork=netdata(:,1:end-1);netlbl=netdata(:,end);% Var Changeinputs = network;targets = netlbl;% Dim SizeInputNum = size(inputs,2);OutputNum = size(targets,2);pr = [-1 1];PR = repmat(pr,InputNum,1);% NN Structure (log-sigmoid transfer function)NH=5;     % Number of Hidden Layers (more better)Network1 = newff(PR,[NH OutputNum],{'tansig' 'tansig'});% Train with PSO on Networks WeightsNetwork1 = TrainPSO(Network1,inputs,targets);view(Network1)% Generating Outputs from Our PSO + NN Network Modeloutputs = Network1(inputs');outputs=outputs';% Sizesizenet=size(network);sizenet=sizenet(1,1);% Outputs ErrorMSE=mse(outputs);% Bias Output for Confusion Matrixoutputs=outputs-(MSE*0.1)/2;% Detecting Mislabeled Datafor i=1 : 50            if outputs(i) <= 0.9               out(i)=0;        elseif outputs(i) >= 0.9               out(i)=1;            end;end;for i=51 : 100            if outputs(i) <= 0.9               out(i)=0;        elseif outputs(i) >= 0.9               out(i)=2;            end;end;for i=101 : 150            if outputs(i) <= 0.9               out(i)=0;        elseif outputs(i) >= 0.9               out(i)=3;            end;end;for i=151 : 200            if outputs(i) <= 0.9               out(i)=0;        elseif outputs(i) >= 0.9               out(i)=4;            end;end;for i=201 : 250            if outputs(i) <= 0.9               out(i)=0;        elseif outputs(i) >= 0.9               out(i)=5;            end;end;for i=251 : 300            if outputs(i) <= 0.9               out(i)=0;        elseif outputs(i) >= 0.9               out(i)=6;            end;end;       out1=single(out');% PSO Final Accuracy       psomse=mse(out1,targets);       MSEError=abs(mse(targets)-mse(out1));       cnt=0;       for i=1:sizenet           if out1(i)~= targets(i)               cnt=cnt+1;           end;       end;      fin=cnt*100/ sizenet;      psoacc=(100-fin)-psomse;

⛄ 运行结果

⛄ 参考文献

[1]杨宝华, 叶生波, 戴前颖,等. 一种基于粒子群算法优化BP神经网络的茶叶存储时间分类方法:, 2019.

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab科研辅导帮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值