matlab算法改进,pso算法改进含MATLAB代码
%% No-dealing LOO RBF
% 程序运行完以后,观察一下数据
%QPSO输出
% Validation_err(curCount,Swarmsize) %每一代每一个粒子的验证数据错误率
% Test_err(curCount,Swarmsize) %每一代每一个粒子的测试数据错误率(有可能比验证集小)
% Position{curCount,Swarmsize} %每一代每一个粒子的位置,即所寻找的参数
% BestFitness(curCount,:)=gbest; %每一代得到的验证集全局最小误差,即适应度函数的迭代指标,越小越好
% BestPosition(curCount,:)=Pg; %每一代得到的对应验证集全局最小误差的最优参数
% BestFitness2(curCount,:)=gbest2; %每一代得到的验证集取得全局最小误差所对应的最优参数取得的测试集误差(不一定最小)
% Bestlabel1(curCount,:)=z1_best; %每一代得到的验证集全局最小误差的预测标签
% Bestlabel2(curCount,:)=z2_best; %每一代得到的验证集取得全局最小误差所对应的最优参数取得的测试集误差的预测标签
% best_position=Pg; %迭代完成以后验证集取得最小误差所对应的最优参数值
% best_accuracy=1-gbest; %迭代完成以后验证集取得是识别率最大值
% best_accuracy2=1-gbest2; %迭代完成以后验证集取得最大识别率对应的最优参数取得的测试集识别率
% best_validation_lable=z1_best; %迭代完成以后验证集取得最大识别率的预测标签
% best_test_lable=z2_best; %迭代完成以后验证集取得最大识别率对应的最优参数取得的测试集识别率的预测标签
%用最优参数模型对验证集和测试机进行识别输出
% V_label %QPSO输出最优参数对应的验证集最大识别率的预测标签和验证集原始标签,第二列等于best_validation_lable=z1_best
% T_label %QPSO输出最优参数对应的测试集识别率的预测标签和测试集原始标签,第二列等于best_test_lable=z2_best
% accuracy %QPSO输出最优参数对应的验证集识别率等于best_accuracy=1-gbest
% accuracy2 %QPSO输出最优参数对应的测试集识别率等于best_accuracy2=1-gbest2
%% 载入数据
clear
global X
X=[];
load wound_data_max
% %% 归一化
% X1=mapminmax(wound_data_max',0,1); %要进行一次转置,这样的归一化是对列(也就是每个传感器响应曲线)的归一化,也有的是对每一次采样得到的数据进行归一化。
% X1=X1';
X=wound_data_max;
%%
Swarmsize=20; %种群规模
particlesize=2; %待优化的参数个数
LoopCount=200; %迭代次数
W=rand(Swarmsize,particlesize);
tic %计时开始
for i=1:Swarmsize
lbest(i)=inf;
end % the values of local fitness
gbest=inf; % the valuse of global fitness
Pl=W; % storgae W value to P, the best local eight values
Pg=W(1,:); % the best adaptation weight values (mininum mean square error)
%% The starting of Particle Swarm Optimization Algorithm
for curCount=1:LoopCount
%calculate the adapting value
for i=1:Swarmsize
[err,y,z]= fit_sqpso_m_rbf_LOO_2(W(i,:)); %对应的要优化的函数的名称,本论文中对应的就是fit_sqpso_fda_m_svm,fit_sqpso_kfda_m_svm等六个函数。
%err是错误率
%a是矩阵,包含两列第一列是给出的标签类别信息,第二列是分类器预测出的标签类别信息
Validation_err(curCount,i)=err; %每一次迭代每一个粒子的留一法错误率
Position{curCount,i}=W(i,:); %每一次迭代每一个粒子的位置,即所寻找的参数
J(i)=err; %验证集错误率
zz1(i,:)=y; %第i个粒子时80个样本的实际标签
zz2(i,:)=z; %第i个粒子时80个样本的预测标签
if lbest(i)>J(i)
lbest(i)=J(i); %每个粒子到目前为止的最优值
Pl(i,:)=W(i,:); %Updated local optimal
end
end
% Search global optimal weight
[fitness, index]=sort(J); % arrange in order of size from mininum to maxinum
if gbest>fitness(1)
gbest=fitness(1); %到目前为止的全局最优值
Pg=W(index(1),:); %到目前为止的取得全局最优值的最优参数
z1_best=zz1(index(1),:); %到目前为止的全局最优值对应的80个样本实际标签
z2_best=zz2(index(1),:); %到目前为止的全局最优值对应的80个样本预测标签
end
BestFitness(curCount,:)=gbest; %每一次迭代得到的全局最小误差,即每一代中适应度函数值最小的一个
BestPosition(curCount,:)=Pg; %每一次迭代得到的对应全局最小误差的最优参数
Bestlabel1(curCount,:)=z1_best; %每一次迭代得到的80个样本实际标签
Bestlabel2(curCount,:)=z2_best; %每一次迭代得到的80个样本预测标签
%save('gbest.txt','gbest','Pg','z1_best','z2_best','-ascii','-double')
% Expressions of updated location and speed
for i=1:particlesize
P=0;
for j=1:Swarmsize
P=P+Pl(j,i);
end
Mbest(i)=P/Swarmsize;
end
% Updated particle locations
beta=0.5+0.5*(LoopCount-curCount)/LoopCount;
for i=1:Swarmsize
for j=1:particlesize
fai1=rand;
fai2=rand;
% p=(fai1*Pl(i,j)+fai2*Pg(j))/(fai1+fai2);
p=fai1*Pl(i,j)+(1-fai2)*Pg(j);
u=rand;
if u>0.5
W(i,j)=p+beta*abs(Mbest(j)-W(i,j))*log(1/u);
else
W(i,j)=p-beta*abs(Mbest(j)-W(i,j))*log(1/u);
end
end
end
if curCount==LoopCount
best_position=Pg; %最优参数值
best_accuracy=1-gbest; %全局最大值
best_actual_lable=z1_best;
best_test_lable=z2_best;
% disp('times of iteration is not enough');
end
end
%best_fitness=BestFitness(curCount); %适应度函数最小取值
% plot( BestFitness,'o') %通过曲线显示整个过程fitness函数的走势
% load train;y1=[y;y;y];Fs=5000;wavplay(y1,Fs); %起到提醒的作用,表示程序已经运行完毕
t=toc; %计时结束并且将时间值返回给t
save workspace_qpso_m_rbf_LOO(2)
matlab算法改进,pso算法改进含MATLAB代码相关推荐
- 【优化算法】改进的灰狼优化算法(IGWO)【含Matlab源码 1349期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[优化算法]改进的灰狼优化算法(IGWO)[含Matlab源码 1349期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费 ...
- 【优化算法】改进的侏儒猫鼬优化算法(IDMO)【含Matlab源码 2314期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[优化算法]改进的侏儒猫鼬优化算法(IDMO)[含Matlab源码 2314期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...
- 【故障检测问题】基于matlab免疫算法求解故障检测问题【含Matlab源码 196期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[故障检测问题]基于matlab免疫算法求解故障检测问题[含Matlab源码 196期] 获取代码方式2: 通过订阅紫极神光博客付费专栏,凭 ...
- 【优化算法】多目标蚁狮优化算法(MOALO)【含Matlab源码 1598期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[优化算法]多目标蚁狮优化算法(MOALO)[含Matlab源码 1598期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...
- 【优化算法】灰狼优化算法(GWO)【含Matlab源码 1305期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[优化算法]灰狼优化算法(GWO)[含Matlab源码 1305期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费专栏优化 ...
- 【优化算法】多目标灰狼优化算法(MOGWO)【含Matlab源码 099期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[优化算法]多目标灰狼优化算法(MOGWO)[含Matlab源码 099期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费 ...
- 【优化算法】象群游牧优化算法(EHO)【含Matlab源码 1080期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[优化算法]象群游牧优化算法(EHO)[含Matlab源码 1080期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费专 ...
- 【图像增强】基于matlab萤火虫算法图像对比度增强【含Matlab源码 2142期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像增强]基于matlab萤火虫算法图像对比度增强[含Matlab源码 2142期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方 ...
- 【RRT三维路径规划】基于matlab RRT_Star算法三维路径规划【含Matlab源码 1571期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[三维路径规划]基于matlab RRT_Star算法三维路径规划[含Matlab源码 1571期] 点击上面蓝色字体,直接付费下载,即可. ...
- 【优化算法】猫群优化算法(CSO)【含Matlab源码 1071期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[优化算法]猫群优化算法(CSO)[含Matlab源码 1071期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费专栏M ...
最新文章
- linux下查看内存使用情况
- phpcms评论的url替换问题
- imagesc demo
- Spring中的InitializingBean的使用详解
- 在线提问:音视频技术开发是事业还是热爱所在?
- java基础入门数据类型,JAVA基础教程:JAVA的基本数据类型及介绍
- 文本编辑器(资源统计篇)
- 算法原理与分析第二次作业
- HDU 6274 Master of Sequence (暴力+下整除)
- 浙江地图和杭州地图及其县市整理
- 杰理AD14N/AD15N---外置Flash烧录音乐文件
- STM8S003F3 开发环境搭建
- ScreenFlow for mac(最强大的屏幕录像软件)
- 桌面图标有蓝底怎么去掉?
- phpMyAdmin4.8.1漏洞复现及利用
- 基于JCA安全体系的封装
- 有度即时通统一工作门户助力政企单位开启数字化办公新模式
- mysql57压缩包安装教程
- What are default and maximum values of dev_loss_tmo in Red Hat Enterprise Linux 6
- linux 运行elf64,Elf64 格式
热门文章
- 独立站卖家如何使用 WhatsApp Business API 建立有意义的客户关系?
- 数字营销公司HubSpot成功的9个经验
- Winrar4.11免费破解版(破解方法/激活码)
- 地球物理:大地测量学综述001
- 大数据学习,基础知识、发展趋势详解
- 服务器虚拟化的作用是什么,什么是服务器虚拟化-vSphere Platnum-VMware虚拟化服务器 | VMware | CN...
- 《弟子规》之余力学文
- 如何使用微软认证程序
- SpringBoot中获取时间对象Can not parse date while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSS
- 欧盟ERP能效测试项目和标准