资源简介
PSO和LSSVM结合代码,亲测可用,并含有LSSVM工具箱,安装于matlab中即可运行。
代码片段和文件信息
function [bestCVaccuarcybestcbestgpso_option] = psoLSSVMcgForClass(trainsettrainset_labelYcpso_option)
% psoLSSVMcgForClass
%by Tangxiaobiao QQ 444646122 blog.sina.com.cn/lssvm
% 2010.05.31
%% 参数初始化
if nargin == 3
pso_option = struct(‘c1‘1.5‘c2‘1.7‘maxgen‘100‘sizepop‘20 ...
‘k‘0.6‘wV‘1‘wP‘1‘v‘5 ...
‘popcmax‘10^2‘popcmin‘10^(-1)‘popgmax‘10^3‘popgmin‘10^(-2));
end
% c1:初始为1.5pso参数局部搜索能力
% c2:初始为1.7pso参数全局搜索能力
% maxgen:初始为200最大进化数量
% sizepop:初始为20种群最大数量
% k:初始为0.6(k belongs to [0.11.0])速率和x的关系(V = kX)
% wV:初始为1(wV best belongs to [0.81.2])速率更新公式中速度前面的弹性系数
% wP:初始为1种群更新公式中速度前面的弹性系数
% v:初始为3SVM Cross Validation参数
% popcmax:初始为100SVM 参数c的变化的最大值.
% popcmin:初始为0.1SVM 参数c的变化的最小值.
% popgmax:初始为1000SVM 参数g的变化的最大值.
% popgmin:初始为0.01SVM 参数c的变化的最小值.
Yc=Yc;
Vcmax = pso_option.k*pso_option.popcmax;
Vcmin = -Vcmax ;
Vgmax = pso_option.k*pso_option.popgmax;
Vgmin = -Vgmax ;
eps = 10^(-3);
[Yccodebookold_codebook] = code(trainset_label‘code_MOC‘);
%% 产生初始粒子和速度
for i=1:pso_option.sizepop
% 随机产生种群和速度
pop(i1) = (pso_option.popcmax-pso_option.popcmin)*rand+pso_option.popcmin;
pop(i2) = (pso_option.popgmax-pso_option.popgmin)*rand+pso_option.popgmin;
V(i1)=Vcmax*rands(1);
V(i2)=Vgmax*rands(1);
% 计算初始适应度
gam=pop(i1);sig2=pop(i2);
model=initlssvm(trainsetYc‘c‘gamsig2‘RBF_kernel‘);
model=trainlssvm(model);
Yd0=simlssvm(modeltrainset);
predict_label = code(Yd0old_codebook[]codebook);%解码分类结果
testnum=size(trainset_label1);
right=sum(trainset_label==predict_label);
n = sum(sum(trainset_label~=predict_label));
fitness(i) = (1-n/prod(size(trainset_label)))*100;
fitness(i) = -fitness(i);
end
% 找极值和极值点
[global_fitness bestindex]=min(fitness); % 全局极值
local_fitness=fitness; % 个体极值初始化
global_x=pop(bestindex:); % 全局极值点
local_x=pop; % 个体极值点初始化
% 每一代种群的平均适应度
avgfitness_gen = zeros(1pso_option.maxgen);
%% 迭代寻优
for i=1:pso_option.maxgen
for j=1:pso_option.sizepop
%速度更新
V(j:) = pso_option.wV*V(j:) + pso_option.c1*rand*(local_x(j:) - pop(j:)) + pso_option.c2*rand*(global_x - pop(j:));
if V(j1) > Vcmax
V(j1) = Vcmax;
end
if V(j1) < Vcmin
V(j1) = Vcmin;
end
if V(j2) > Vgmax
V(j2) = Vgmax;
end
if V(j2) < Vgmin
V(j2) = Vgmin;
end
%种群更新
pop(j:)=pop(j:) + pso_option.wP*V(j:);
if pop(j1) > pso_option.popcmax
pop(j1) = pso_option.popcmax;
end
if pop(j1) < pso_option.popcmin
pop(j1) = pso_option.popcmin;
end
if pop(j2) > pso_option.popgmax
pop(j2) = pso_option.popgmax;
end
if pop(j2) < pso_option.popgmin
pop(j2) = pso_option.popgmin;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5829 2019-01-22 11:03 PSO_LSSVM\psoLSSVMcgForClass.m
文件 2717 2019-01-22 11:08 PSO_LSSVM\PSO_LSSVM.m
文件 5423 2015-06-22 09:51 PSO_LSSVM\winedata.mat
文件 2165517 2019-01-22 10:56 LS_SVM.zip
目录 0 2019-01-22 10:38 PSO_LSSVM
----------- --------- ---------- ----- ----
2179486 5
相关资源
- matlab-lssvm程序
- libsvm-3.1-[FarutoUltimate3.1
- PSO优化模糊控制器进行电动汽车能量
- 多目标粒子群社团检测算法MODPSO
- PSO优化SVM参数matlab
- 蜂群SVMABC-SVM遗传算法SVMGA-SVM粒子群
- 遗传粒子群优化算法-GAPSO.rar
- pso优化bp神经网络代码
- MATLAB 多目标粒子群算法源代码
- 粒子群算法应用在路径规划matlab
- MOPSO+
- 粒子群算法matlab含注释
- pso-bp代码
- 基于权重改进的PSO
- PSO优化PID参数
- pso工具箱 matlab
- LSSVM程序代码
- 智能优化算法及其MATLAB第2版-书中的
- MOPSO多目标优化程序MATLAB代码.zip
- 基于粒子群算法的优化模型matlab程序
- psot工具箱及使用说明.zip
- matlab 2D椭圆和3D椭球拟合
- 灰狼算法GWO和粒子群算法PSO的matlab源
- PSO_GD.m粒子群求解多目标优化
- 粒子群优化CLPSO的MATLAB源代码
- 改进的PSO的matlab源程序
- vc 复化梯形积分法 复化Simpson积分法
- 粒子群搜索代码
- 多目标粒子群优化算法MATLAB
- MATLAB粒子群算法PSO解决TSP51个城市问题
评论
共有 条评论