您现在的位置:首页 >> 机器学习 >> 内容

m基于WOA优化的SVM乳腺癌细胞和正常细胞分类识别算法matlab仿真,对比BP网络,SVM,PS

时间:2023/1/15 22:33:14 点击:

  核心提示:05_071_m,包括程序操作录像+说明文档+参考文献...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/Y56Wk5Zt

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览



3.算法概述

       SVM 是有监督的学习模型,我们需要事先对数据打上分类标签,通过求解最大分类间隔来求解二分类问题。如果要求解多分类问题,可以将多个二分类器组合起来形成一个多分类器。 WOA算法设计的既精妙又富有特色,它源于对自然界中座头鲸群体狩猎行为的模拟, 通过鲸鱼群体搜索、包围、追捕和攻击猎物等过程实现优时化搜索的目的。在原始的WOA中,提供了包围猎物,螺旋气泡、寻找猎物的数学模型。

4.部分源码

P   = breast(:,1:9);

T   = round(breast(:,end)/2);

Iters = 30;            %最大迭代次数

D     = 2;            %搜索空间维数

Num   = 10;           

%初始化种群的个体(可以在这里限定位置和速度的范围)

woa_idx      = zeros(1,D);

woa_get      = inf; 

%初始化种群的个

xwoa=rand(Num,D)/70; %随机初始化位置

for t=1:Iters

    t

    for i=1:Num

        if xwoa(i,1)<0

           xwoa(i,1)=0.1; 

        end

        if xwoa(i,2)<0

           xwoa(i,2)=0.001; 

        end

        %目标函数更新

        [pa(i)]  = fitness(xwoa(i,:),P,T);

        Fitout   = pa(i);

        %更新

        if Fitout < woa_get  

            woa_get = Fitout; 

            woa_idx = xwoa(i,:);

        end

    end

    %调整参数

    c1 = 2-t*((1)/120); 

    c2 =-1+t*((-1)/120);

    %位置更新

    for i=1:Num

        rng(i);

        r1         = rand();

        r2         = rand();

        K1         = 2*c1*r1-c1;  

        K2         = 2*r2;             

        l          =(c2-1)*rand + 1;  

        rand_flag  = rand();   

        

        for j=1:D

            if rand_flag<0.6   

               if abs(K1)>=1

                  RLidx    = floor(Num*rand()+1);

                  X_rand   = xwoa(RLidx, :);

                  D_X_rand = abs(K2*X_rand(j)-xwoa(i,j)); 

                  xwoa(i,j)= X_rand(j)-K1*D_X_rand;     

               else

                  D_Leader = abs(K2*woa_idx(j)-xwoa(i,j)); 

                  xwoa(i,j)= woa_idx(j)-K1*D_Leader;    

               end

            else

                distLeader = abs(woa_idx(j)-xwoa(i,j));

                xwoa(i,j)  = distLeader*exp(12*l).*cos(l.*2*pi)+woa_idx(j);

            end

        end

    end

    [pb]     = fitness(woa_idx,P,T);

    Pbest(t) = pb;

end

05_071_m

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168