下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 老年人日常护理技巧
- 隆鼻手术恢复期护理细节
- 护理精神科护理特殊性与挑战
- 护理中的疼痛管理与缓解策略
- 大丰市小海中学高中化学检测期末串讲(下)
- 2025年保险合作协议书
- 垂直市场广告竞争策略研究
- 2026 年中职康复治疗技术(柔韧性训练)试题及答案
- 英语b级的试题及答案
- 基于“大单元”视角的高中思政课教学策略研究
- 跨区域文化协作-洞察及研究
- 2025 易凯资本中国健康产业白皮书 -生物制造篇(与茅台基金联合发布)
- 产业经济学(苏东坡版)课后习题及答案
- T/CECS 10227-2022绿色建材评价屋面绿化材料
- 区域医学检验中心项目建设方案
- 小学四年级安全教育上册教学计划小学四年级安全教育教案
- 个人优势与劣势分析
- VCR接头锁紧工作程序
- 2025阀门装配工艺规程
- 非计划拔管风险评估及护理
- 小学数学教学中融入中国传统文化的实践研究
评论
0/150
提交评论