% 冯洛伊曼结构的鲸鱼优化
function [Leader_pos,Convergence_curve]=vnwoaforlssvm(popsize,Max_iter,X1,y1,Xt,yt)
dim=2;
lb=0;
ub=1000;
Convergence_curve=zeros(1,Max_iter);
%% 初始全局最优解
%Initialize the positions of search agents
for i=1:popsize
Positions(i,:)=rand(1,dim).*(ub-lb)+lb;
end
for i=1:popsize
p(i)=fun(Positions(i,:),X1,y1,Xt,yt); %计算当前个体适应度值
end
[~, index]=min(p);
Leader_pos=Positions(index,:);
Leader_score=p(index);
% 构造冯洛伊曼拓扑
for i=1:popsize
if i==1
%luoyiman_localbest(前,后,中间,左,右)
plocal(i,:)=luoyiman_localbest(Positions(popsize-1,:),Positions(popsize,:),Positions(i,:),Positions(i+1,:),Positions(i+2,:),X1,y1,Xt,yt);
elseif i==2
plocal(i,:)=luoyiman_localbest(Positions(popsize,:),Positions(i-1,:),Positions(i,:),Positions(i+1,:),Positions(i+2,:),X1,y1,Xt,yt);
elseif i==popsize-1
plocal(i,:)=luoyiman_localbest(Positions(i-2,:),Positions(i-1,:),Positions(i,:),Positions(popsize,:),Positions(1,:),X1,y1,Xt,yt);
elseif i==popsize
plocal(i,:)=luoyiman_localbest(Positions(i-2,:),Positions(i-1,:),Positions(i,:),Positions(1,:),Positions(2,:),X1,y1,Xt,yt);
else
plocal(i,:)=luoyiman_localbest(Positions(i-2,:),Positions(i-1,:),Positions(i,:),Positions(i+1,:),Positions(i+2,:),X1,y1,Xt,yt);
end
end
%% Main loop
for t=1:Max_iter
t
%% 种群更新
for i=1:size(Positions,1)
a=2-t*(2/Max_iter); % a decreases linearly from 2 to 0
% a2 linearly dicreases from -1 to -2 to calculate t
a2=-1+t*((-1)/Max_iter);
r1=rand; % r1 is a random number in [0,1]
r2=rand; % r2 is a random number in [0,1]
A=2*a*r1-a;
C=2*r2;
b=1;
l=(a2-1)*rand+1;
p = rand;
for j=1:size(Positions,2)
if p<0.5
if abs(A)>=1
rand_leader_index = floor(popsize*rand()+1);
X_rand = Positions(rand_leader_index, :);
D_X_rand=abs(C*X_rand(j)-Positions(i,j));
Positions(i,j)=X_rand(j)-A*D_X_rand;
elseif abs(A)<1
D_Leader=abs(C*Leader_pos(j)-Positions(i,j));
Positions(i,j)=Leader_pos(j)-A*D_Leader;
end
elseif p>=0.5
distance2Leader=abs(Leader_pos(j)-Positions(i,j));
Positions(i,j)=distance2Leader*exp(b.*l).*cos(l.*2*pi)+Leader_pos(j);
end
end
%% 检测鲸鱼是否越界 并做越界处理
Positions(i,:)=boundary(Positions(i,:),lb,ub);
%% 冯洛伊曼 判断与更新
if i==1
%luoyiman_localbest(前,后,中间,左,右)
plocal(i,:)=luoyiman_localbest(Positions(popsize-1,:),Positions(popsize,:),Positions(i,:),Positions(i+1,:),Positions(i+2,:),X1,y1,Xt,yt);
elseif i==2
plocal(i,:)=luoyiman_localbest(Positions(popsize,:),Positions(i-1,:),Positions(i,:),Positions(i+1,:),Positions(i+2,:),X1,y1,Xt,yt);
elseif i==popsize-1
plocal(i,:)=luoyiman_localbest(Positions(i-2,:),Positions(i-1,:),Positions(i,:),Positions(popsize,:),Positions(1,:),X1,y1,Xt,yt);
elseif i==popsize
plocal(i,:)=luoyiman_localbest(Positions(i-2,:),Positions(i-1,:),Positions(i,:),Positions(1,:),Positions(2,:),X1,y1,Xt,yt);
else
plocal(i,:)=luoyiman_localbest(Positions(i-2,:),Positions(i-1,:),Positions(i,:),Positions(i+1,:),Positions(i+2,:),X1,y1,Xt,yt);
end
% 利用冯洛伊曼网格中的局部最优与当前迭代次数对应的全局最优进行更新,随着迭代的进行,局部最优逐渐和全局最优重合
w=1-exp(1-t);
Positions(i,:)=w*plocal(i,:)+(1-w)*Leader_pos;%文章中两者的权重均为0.5.这里我采用自适应权重,随着迭代的进行,可以加速
% Calculate objective function for each search agent
fitness=fun(Positions(i,:),X1,y1,Xt,yt);
%% 全局最优解更新
if fitness>Leader_score
Leader_score=fitness;
Leader_pos=Positions(i,:);%更新全局最优解
end
end
Convergence_curve(t)=Leader_score;
end
没有合适的资源?快使用搜索试试~ 我知道了~
利用最小二乘支持向量机进行分类器建模,改进鲸鱼算法
共19个文件
m:15个
mat:3个
rar:1个
需积分: 5 1 下载量 8 浏览量
2024-06-26
10:08:22
上传
评论
收藏 355KB ZIP 举报
温馨提示
利用最小二乘支持向量机进行分类器建模,改进鲸鱼算法(基于冯洛伊曼拓扑的鲸鱼算法)进行超参数寻优最后将所提方法用于滚动轴承的故障诊断 支持向量机(Support Vector Machine,SVM)是一种在机器学习领域中常用的监督学习模型,主要用于分类和回归分析。它的主要思想是找到一个最优的超平面来区分不同类别的数据。
资源推荐
资源详情
资源评论
收起资源包目录
Rolling-bearing-fault-diagnosis-master.zip (19个子文件)
Rolling-bearing-fault-diagnosis-master
main_youhua.m 2KB
select.m 1KB
vnwoaforlssvm.m 4KB
initialization.m 173B
gaforlssvm.m 2KB
data_jade.mat 113KB
woaforlssvm.m 3KB
trace.mat 488B
Code.m 442B
psoforlssvm.m 1KB
data_kjade.mat 111KB
Cross.m 2KB
test.m 253B
fun.m 421B
luoyiman_localbest.m 327B
LSSVMlab.rar 120KB
lssvm_putong.m 974B
boundary.m 270B
Mutation.m 2KB
共 19 条
- 1
资源评论
电网论文源程序
- 粉丝: 1w+
- 资源: 367
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Java及Web技术的医药管理系统设计源码
- 基于Objective-C的cordova-plugin-wechat插件开发源码研究
- 基于Python语言的SocialNetworkBackend社交数据分析系统后端设计源码
- 基于Python的pytracking-master目标跟踪dimp方法设计源码
- 基于PHP、JavaScript、CSS的zibll主题美化插件设计源码
- 毕业设计之mimo系统中中最大比合并和空时编码的性能研究
- 本程序对基于matlab对NOMA系统中经典多用户功率分配算法进行了研究
- Phone-1.zip
- 07-2022240679-学生信息管理-骆泳舟.zip
- lvdai20241115
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功