1 简介
为了提高核极限学习机(KELM)数据分类的精度,提出了遗传算法(GA)的KELM分类器参数优化方法(GA-KELM),将CV训练所得多个模型的平均精度作为GA的适应度评价函数,为KELM的参数优化提供评价标准,用获得GA优化最优参数的KELM算法进行数据分类.利用UCI中数据集进行仿真.
2 部分代码
%清空运行空间clc;clear;close all;wmax=0.9;wmin=0;%速度的上限及下限itmax=50;%迭代代数%速度更新参数c1=2;c2=2;for iter=1:itmaxW(iter)=wmax-((wmax-wmin)/itmax)*iter;end;a=-1;b=2;N=200;D=2;m=0.1;n=3;tcl=0.05;f='x.*sin(4*pi.*x)-y.*sin(4*pi.*y+pi+1)';[x,y]=meshgrid(a:tcl:b,a:tcl:b);vxp=x;vyp=y;vzp=eval(f);x=[];vmfit=[];x=a+(b-a)*rand(N,D,1);V=wmin+(wmax-wmin)*rand(N,D,1);for i=1:NF(i,1,1)=x(i,1,1)*sin(4*pi*x(i,1,1))-x(i,2,1)*sin(4*pi*x(i,2,1)+pi+1);end;media=mean(F(:,1,1));vmfit=[vmfit media];[C,I]=max(abs(F(:,1,1)));B(1,1,1)=C;gbest(1,1,1)=x(I,1,1);gbest(1,2,1)=x(I,1,1);for p=1:Nfor r=1:DG(p,r,1)=gbest(1,r,1);endendFbest(1,1,1)=G(1,1,1)*sin(4*pi.*G(1,1,1))-G(1,2,1)*sin(4*pi.*G(1,2,1)+pi+1);for i=1:Npbest(i,:,1)=x(i,:,1);pbestendFb(1,1,1)=gbest(1,1,1)*sin(4*pi.*gbest(1,1,1))-gbest(1,2,1)*sin(4*pi.*gbest(1,2,1)+pi+1);for j=2:itmaxV(:,:,j)=W(j-1)*V(:,:,j-1)+c1*rand*(pbest(:,:,j-1)-x(:,:,j-1))+c2*rand*(G(:,:,j-1)-x(:,:,j-1))x(:,:,j)=x(:,:,j-1)+V(:,:,j);for xx=1:Nfor yy=1:Dif x(xx,yy,j)<ax(xx,yy,j)=a;end;if x(xx,yy,j)>bx(xx,yy,j)=b;end;end;end;for i=1:NF(i,1,j)=x(i,1,j)*sin(4*pi.*x(i,1,j))-x(i,2,j)*sin(4*pi.*x(i,2,j)+pi+1);end;media=mean(F(:,1,j));vmfit=[vmfit media];[C,I]=max(abs(F(:,:,j)));B(1,1,j)=C;gbest(1,1,j)=x(I,1,j);gbest(1,2,j)=x(I,2,j);Fb(1,1,j)=gbest(1,1,j)*sin(4*pi.*gbest(1,1,j))-gbest(1,2,j)*sin(4*pi.*gbest(1,2,j)+pi+1);[C,I]=max(Fb(1,1,:));if C>Fb(1,1,j)gbest(1,1,j)=gbest(1,1,I);gbest(1,2,j)=gbest(1,2,I);end;for p=1:Nfor r=1:DG(p,r,j)=gbest(1,r,j);end;end;Fbest(1,1,j)=G(1,1,j)*sin(4*pi.*G(1,1,j))-G(1,2,j)*sin(4*pi.*G(1,2,j)+pi+1);for i=1:N[C,I]=max(F(i,1,:));if F(i,1,j)>=Cpbest(i,:,j)=x(i,:,j);elsepbest(i,:,j)=x(i,:,I);end;end;endgbest(1,:,itmax)Fbest(1,1,itmax)%Random deployment algorithmsx=a+(b-a)*rand(N,D,1);sy=a+(b-a)*rand(N,D,1);sz=a+(b-a)*rand(N,D,1);%%Gradient direction algorithmfigure(1);mesh(vxp,vyp,vzp);hold on;plot3(x(:,1,1),x(:,2,1),F(:,1,1),'k*')title('Gradient direction algorithm hydrophone distribution');%Left view%view(-90,0)xlabel('Simulated underwater area width(kilometre)');ylabel('Simulated underwater area length(kilometre)');zlabel('Simulated water depth(kilometre)');grid on;figure(2)mesh(vxp,vyp,vzp);hold on;plot3(sx,sy,sz,'k*','MarkerSize',5)title('Random deployment algorithm hydrophone distribution');%Left view%view(-90,0)xlabel('Simulated underwater area width(kilometre)');ylabel('Simulated underwater area length(kilometre)');zlabel('Simulated water depth(kilometre)');grid on;figure(3);i_draw4=1:itmax;Fbest1(i_draw4)=Fbest(1,1,i_draw4);i_draw4=i_draw4';plot(i_draw4,Fbest1);hold on;plot(vmfit,'r');hold off;title('Optimal, average function value change trend');xlabel('Generations');ylabel('J(\theta)');grid on;
3 仿真结果


4 参考文献
[1]何敏, 刘建伟, 胡久松. 遗传优化核极限学习机的数据分类算法[J]. 传感器与微系统, 2017, 36(10):3.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
该文提出了一种使用遗传算法(GA)优化的核极限学习机(KELM)分类器,以提高数据分类精度。通过将多个模型的平均精度作为GA的适应度函数,寻找KELM的最佳参数。仿真实验在UCI数据集上进行,展示了GA-KELM的有效性。文章还给出了部分MATLAB代码示例,展示算法实现过程,并对比了随机部署与梯度方向算法下的水听器分布效果。
5992

被折叠的 条评论
为什么被折叠?



