資源簡介
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
評論
共有 條評論