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