资源简介
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);
- 上一篇:牛顿拉夫逊法解潮流计算MATLAB程序附课本例题解答
- 下一篇:GA-ELM.rar
评论
共有 条评论