【Kelm分类】基于遗传算法优化核极限学习机实现数据分类附matlab代码

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:itmax    W(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:N    F(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:N    for r=1:D        G(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:N    pbest(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:itmax    V(:,:,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:N        for yy=1:D            if x(xx,yy,j)<a                x(xx,yy,j)=a;            end;            if x(xx,yy,j)>b                x(xx,yy,j)=b;            end;        end;    end;    for i=1:N        F(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:N        for r=1:D            G(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)>=C            pbest(i,:,j)=x(i,:,j);        else            pbest(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代码问题可私信交流。

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

matlab科研助手

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

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

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

打赏作者

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

抵扣说明:

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

余额充值