付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、复制代码在这里使用启发式算法GA (遗传算法)来进行参数寻优,用网格划分 (grid search)来寻找最佳的参数c和g,虽然采用网格搜索能够找到在CV意义下的最高的分类准确率,即全局最优解,但有时候如果想在更大的范围内寻找最佳的参数c和g会很费时,采用启发式算法就可以不必遍历网格内的所有的参数点,也能找到全局最优解。关于遗传算法这里不打算过多介绍,想要学习的朋友可以自己查看相关资料。使用GA来进行参数寻优在在libsvm-mat-2.89-3FarutoUltimate3.0工具箱中已经实现gaSVMcgForClass.m (分类问题参数寻优)、gaSVMcgForRegress.m (
2、回归问题参数寻优)。1. 利用GA参数寻优函数(分类问题):gaSVMcgForClass2. bestCVaccuracy,bestc,bestg,ga_option=3. gaSVMcgForClass(train_label,train,ga_option)4. 输入:5. train_label:训练集的标签,格式要求与svmtrain 相同。6. train:训练集,格式要求与svmtrain 相同。7. ga_option:GA中的一些参数设置,可不输入,有默认值,详细请看代码的帮助说明。8. 输出:9. bestCVaccuracy:最终CV意义下的最佳分类准确率。10. bes
3、tc:最佳的参数 c。11. bestg:最佳的参数 g。12. ga_option:记录GA中的一些参数。13. =14. 利用GA参数寻优函数(回归问题):gaSVMcgForRegress15. bestCVmse,bestc,bestg,ga_option=16. gaSVMcgForRegress(train_label,train,ga_option)17. 其输入输出与gaSVMcgForClass类似,这里不再赘述。复制代码gaSVMcgForClass.m 源代码:1. function BestCVaccuracy,Bestc,Bestg,ga_option= gaSVMc
4、gForClass(train_label,train_data,ga_option)2. % gaSVMcgForClass3.3. %4. % by faruto5. %Email:patrick.lee QQ:516667408 BNU6. %last modified 2010.01.178.7. %若转载请注明:8. % faruto and liyang , LIBSVM-farutoUltimateVersion9. %a toolbox with implements for support vector machines based on libsvm, 2009.10. %
5、11. % Chih-Chung Chang and Chih-Jen Lin, LIBSVM : a library for12. % support vector machines, 2001. Software available at13. % .tw/cjlin/libsvm16.14. %#数初始化15. if nargin = 216. ga_option = struct('maxgen',200,'sizepop',20,'ggap',0.9,.17. 'cbound'
6、,0,100,'gbound',0,1000,'v',5);18. end19. % maxgen:最大的进化代数,默认为200,一般取值范围为100,50020. % sizepop:种群最大数量,默认为20, 一般取值范围为20,10021. % cbound = cmin,cmax,参数 c 的变化范围,默认为(0,10022. % gbound = gmin,gmax,参数 g 的变化范围,默认为0,100023. % v:SVM Cross Validation 参数,默认为 527.24. %25. MAXGEN = ga_option.maxgen
7、;26. NIND = ga_option.sizepop;27. NVAR = 2;28. PRECI = 20;29. GGAP = ga_option.ggap;30. trace = zeros(MAXGEN,2);35.31. FieldID =.32. rep(PRECI,1,NVAR);ga_option.cbound(1),ga_option.gbound(1);ga_ option.cbound(2),ga_option.gbound(2); .33. 1,1;0,0;0,1;1,1;39.34. Chrom = crtbp(NIND,NVAR*PRECI);41.35. g
8、en = 1;36. v = ga_option.v;37. BestCVaccuracy = 0;38. Bestc = 0;39. Bestg = 0;40. %41. cg = bs2rv(Chrom,FieldID);49.42. for nind = 1:NIND43. cmd = '-v ',num2str(v),' -c ',num2str(cg(nind,1),' -g',num2str(cg(nind,2);44. ObjV(nind,1) = svmtrain(train_label,train_data,cmd);45. e
9、nd46. BestCVaccuracy,I = max(ObjV);47. Bestc = cg(I,1);48. Bestg = cg(I,2);57.49. %50. while 151. % for gen = 1:MAXGEN52. FitnV = ranking(-ObjV);62.53. SelCh = select('sus',Chrom,FitnV,GGAP);54. SelCh = recombin('xovsp',SelCh,0.7);55. SelCh = mut(SelCh);66.56. cg = bs2rv(SelCh,FieldI
10、D);57. for nind = 1:size(SelCh,1)58. cmd = '-v ',num2str(v),' -c ',num2str(cg(nind,1),' -g ',num2str(cg(nind,2);59. ObjVSel(nind,1) = svmtrain(train_label,train_data,cmd);60. end72.61. Chrom,ObjV = reins(Chrom,SelCh,1,1,ObjV,ObjVSel);74.62. if max(ObjV) <= 5063. continue;6
11、4. end78.65. NewBestCVaccuracy,I = max(ObjV);66. cg_temp = bs2rv(Chrom,FieldID);67. temp_NewBestCVaccuracy = NewBestCVaccuracy;82.68. if NewBestCVaccuracy >BestCVaccuracy69. BestCVaccuracy = NewBestCVaccuracy;70. Bestc = cg_temp(I,1);71. Bestg = cg_temp(I,2);72. end88.73. if abs( NewBestCVaccurac
12、y-BestCVaccuracy ) <= 10A(-2) && .74. cg_temp(I,1) < Bestc75. BestCVaccuracy = NewBestCVaccuracy;76. Bestc = cg_temp(I,1);77. Bestg = cg_temp(I,2);78. end95.79. trace(gen,1) = max(ObjV);80. trace(gen,2) = sum(ObjV)/length(ObjV);98.81. gen = gen+1;100.82. if gen <= MAXGEN/283. contin
13、ue;84. end85. if BestCVaccuracy >=80 &&.86. ( temp_NewBestCVaccuracy-BestCVaccuracy ) <= 10A(-2)87. break;88. end89. if gen= MAXGEN90. break;91. end111.92. end93. gen = gen -1;94. %95. figure;96. hold on;97. trace = round(trace*10000)/10000;98. plot(trace(1:gen,1),'r*-','Li
14、neWidth',1.5);99. plot(trace(1:gen,2),'o-','LineWidth',1.5);100. legend('最佳适应度','平均适应度',3);101. xlabel('进化代数','FontSize',12);102. ylabel('适应度','FontSize',12);103. axis(0 gen 0100);104. grid on;105. axis auto;126.106. line1 ='适应度曲线 AccuracyGAmethod'107. line2 ='(终止代数=',.108. num2str(gen),', 种群数量 pop='
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广东清远私立学校2026年教师招聘37人备考题库及参考答案详解ab卷
- 2026广西梧州市龙圩区招(补)录城镇公益性岗位人员11人备考题库带答案详解(综合题)
- 2026江西省江投老年医养有限公司招聘9人备考题库及1套参考答案详解
- 2026陕西氢能产业发展有限公司(榆林)所属单位社会招聘27人备考题库及参考答案详解(预热题)
- 2026四川自贡市中医医院编外人员招聘10人备考题库含答案详解(基础题)
- 2026贵州铜仁市第一批市本级城镇公益性岗位招聘26人备考题库附参考答案详解(满分必刷)
- 2026江西抚州高新区招聘社区工作者(专职网格员)50人备考题库附答案详解(达标题)
- 2026黑龙江齐齐哈尔市龙沙区南航街道公益性岗位招聘1人备考题库及答案详解(易错题)
- 2026广西南宁兴宁区五塘镇中心卫生院招聘1人备考题库含答案详解(突破训练)
- 2026春季新疆克拉玛依市面向高校毕业生招聘事业单位人员120人备考题库及答案详解【有一套】
- 鞋厂介绍教学课件
- 雀斑激光治疗课件
- 铁死亡课件教学课件
- 剑突下纵隔肿瘤切除术
- 补钙补维生素课件
- 老年高血压跌倒风险评估与预防方案
- 青光眼的治疗课件
- 2025年内蒙古行政执法考试试题及答案
- 沙石代理授权合同范本
- 驾驶舱交流障碍对飞行安全的影响
- 《百年孤独(节选)》课件+2025-2026学年统编版高二语文选择性必修上册
评论
0/150
提交评论