• 大小: 4KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: Matlab
  • 标签: GASVM  

资源简介

Matlab遗传算法优化SVM的参数算范例子,主要调C、gamma

资源截图

代码片段和文件信息

function [BestCVaccuracyBestcBestgga_option] = gaSVMcgForClass(train_labeltrain_dataga_option)
% gaSVMcgForClass

%%
% by faruto
%Email:patrick.lee@foxmail.com QQ:516667408 http://blog.sina.com.cn/faruto BNU
%last modified 2010.01.17

%% 若转载请注明:
% faruto and liyang  LIBSVM-farutoUltimateVersion 
% a toolbox with implements for support vector machines based on libsvm 2009. 

% Chih-Chung Chang and Chih-Jen Lin LIBSVM : a library for
% support vector machines 2001. Software available at
% http://www.csie.ntu.edu.tw/~cjlin/libsvm

%% 参数初始化
if nargin == 2
    ga_option = struct(‘maxgen‘200‘sizepop‘20‘ggap‘0.9...
        ‘cbound‘[0100]‘gbound‘[01000]‘v‘5);
end
% maxgen:最大的进化代数默认为200一般取值范围为[100500]
% sizepop:种群最大数量默认为20一般取值范围为[20100]
% cbound = [cmincmax]参数c的变化范围默认为(0100]
% gbound = [gmingmax]参数g的变化范围默认为[01000]
% v:SVM Cross Validation参数默认为5

%%
MAXGEN = ga_option.maxgen;
NIND = ga_option.sizepop;
NVAR = 2;
PRECI = 20;
GGAP = ga_option.ggap;
trace = zeros(MAXGEN2);

FieldID = ...
[rep([PRECI][1NVAR]);[ga_option.cbound(1)ga_option.gbound(1);ga_option.cbound(2)ga_option.gbound(2)]; ...
[11;00;01;11]];

Chrom = crtbp(NINDNVAR*PRECI);

gen = 1;
v = ga_option.v;
BestCVaccuracy = 0;
Bestc = 0;
Bestg = 0;
%%
cg = bs2rv(ChromFieldID);

for nind = 1:NIND
    cmd = [‘-v ‘num2str(v)‘ -c ‘num2str(cg(nind1))‘ -g ‘num2str(cg(nind2))];
    ObjV(nind1) = svmtrain(train_labeltrain_datacmd);
end
[BestCVaccuracyI] = max(ObjV);
Bestc = cg(I1);
Bestg = cg(I2);

%%
while 1    
% for gen = 1:MAXGEN
    FitnV = ranking(-ObjV);
    
    SelCh = select(‘sus‘ChromFitnVGGAP);
    SelCh = recombin(‘xovsp‘SelCh0.7);
    SelCh = mut(SelCh);
    
    

评论

共有 条评论