回归预测 | Matlab实现MPA-BP海洋捕食者算法优化BP神经网络多变量回归预测
目录
- 回归预测 | Matlab实现MPA-BP海洋捕食者算法优化BP神经网络多变量回归预测
- 效果一览
- 基本介绍
- 程序设计
- 参考资料
效果一览
基本介绍
1.Matlab实现MPA-BP海洋捕食者算法优化BP神经网络多变量回归预测;
2.数据集为excel,输入7个特征,输出1个变量,运行主程序main.m即可,其余为函数文件,无需运行;
3.优化参数为神经网络的权值和偏置,命令窗口输出RMSE、MAPE、MAE、R2等评价指标;
4.运行环境Matlab2018b及以上。
程序设计
- 完整程序和数据获取方式:私信博主回复Matlab实现MPA-BP海洋捕食者算法优化BP神经网络多变量回归预测;
function [Top_predator_fit,Top_predator_pos,Convergence_curve]=MPA(SearchAgents_no,Max_iter,lb,ub,dim,fobj)Top_predator_pos=zeros(1,dim);
Top_predator_fit=inf; Convergence_curve=zeros(1,Max_iter);
stepsize=zeros(SearchAgents_no,dim);
fitness=inf(SearchAgents_no,1);Prey=initialization(SearchAgents_no,dim,ub,lb);Xmin=repmat(ones(1,dim).*lb,SearchAgents_no,1);
Xmax=repmat(ones(1,dim).*ub,SearchAgents_no,1);Iter=0;
FADs=0.2;
P=0.5;while Iter<Max_iter %------------------- Detecting top predator ----------------- for i=1:size(Prey,1) Flag4ub=Prey(i,:)>ub;Flag4lb=Prey(i,:)<lb; Prey(i,:)=(Prey(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb; fitness(i,1)=fobj(Prey(i,:));if fitness(i,1)<Top_predator_fit Top_predator_fit=fitness(i,1); Top_predator_pos=Prey(i,:);end end%------------------- Marine Memory saving ------------------- if Iter==0fit_old=fitness; Prey_old=Prey;endInx=(fit_old<fitness);Indx=repmat(Inx,1,dim);Prey=Indx.*Prey_old+~Indx.*Prey;fitness=Inx.*fit_old+~Inx.*fitness;fit_old=fitness; Prey_old=Prey;
参考资料
[1] https://blog.csdn.net/kjm13182345320/article/details/129036772?spm=1001.2014.3001.5502
[2] https://blog.csdn.net/kjm13182345320/article/details/128690229