赞
踩
1.Matlab实现PSO-GRU-Attention粒子群算法优化门控循环单元融合注意力机制多特征分类预测,运行环境Matlab2023b及以上;
2.优化参数为:学习率,隐含层节点,正则化参数。
3.多特征输入单输出的二分类及多分类模型。程序内注释详细,直接替换数据就可以用;
程序语言为matlab,程序可出分类效果图,迭代优化图,混淆矩阵图;
4.data为数据集,输入12个特征,分四类;main为主程序,其余为函数文件,无需运行,可在下载区获取数据和程序内容。
function [gbest,g,Convergence_curve]=PSO(N,T,lb,ub,dim,fobj) %% 定义粒子群算法参数 % N 种群 T 迭代次数 %% 随机初始化种群 D=dim; %粒子维数 c1=1.5; %学习因子1 c2=1.5; %学习因子2 w=0.8; %惯性权重 Xmax=ub; %位置最大值 Xmin=lb; %位置最小值 Vmax=ub; %速度最大值 Vmin=lb; %速度最小值 %% %%%%%%%%%%%%%%%%初始化种群个体(限定位置和速度)%%%%%%%%%%%%%%%% x=rand(N,D).*(Xmax-Xmin)+Xmin; v=rand(N,D).*(Vmax-Vmin)+Vmin; %%%%%%%%%%%%%%%%%%初始化个体最优位置和最优值%%%%%%%%%%%%%%%%%%% p=x; pbest=ones(N,1); for i=1:N pbest(i)=fobj(x(i,:)); end %%%%%%%%%%%%%%%%%%%初始化全局最优位置和最优值%%%%%%%%%%%%%%%%%% g=ones(1,D); gbest=inf; for i=1:N if(pbest(i)<gbest) g=p(i,:); gbest=pbest(i); end end %%%%%%%%%%%按照公式依次迭代直到满足精度或者迭代次数%%%%%%%%%%%%% for i=1:T i for j=1:N %%%%%%%%%%%%%%更新个体最优位置和最优值%%%%%%%%%%%%%%%%% if (fobj(x(j,:))) <pbest(j) p(j,:)=x(j,:); pbest(j)=fobj(x(j,:));
[1] https://blog.csdn.net/kjm13182345320/article/details/129036772?spm=1001.2014.3001.5502
[2] https://blog.csdn.net/kjm13182345320/article/details/128690229
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。