选取SVM中参数c和g的最佳值

上传人:ba****u 文档编号:168287850 上传时间:2022-11-09 格式:DOCX 页数:7 大小:163.01KB
返回 下载 相关 举报
选取SVM中参数c和g的最佳值_第1页
第1页 / 共7页
选取SVM中参数c和g的最佳值_第2页
第2页 / 共7页
选取SVM中参数c和g的最佳值_第3页
第3页 / 共7页
点击查看更多>>
资源描述
写了个程序来选取SVM中参数c和g的最佳值.写这个的目的是方便大家用这个小程序直接来寻找 c和g的最佳值,不用再另外编写东西了其实原本libsvm C语言版本中有相应的子程序可以找到最佳的c和g, 需装载python语言然后用py那个画图就可以找到最佳的c和g,我写 了个matlab版本的算是弥补了 libsvm在matlab版本下的空缺.测试数据还是我视频里的wine data.寻找最佳c和g的思想仍然是让c和g在一定的范围里跑(比如c =2八(-5),2八(-4),2八(5),g = 2八(-5),2八(-4),2八(5),然后用 cross validation的想法找到是的准确率最高的c和g,在这里我做了 一点修改(纯粹是个人的一点小经验和想法),我改进的是:因为会有不 同的c和g都对应最高的的准确率,我把具有最小c的那组c和g认为 是最佳的c和g,因为惩罚参数不能设置太高,很高的惩罚参数能使得 validation数据的准确率提高,但过高的惩罚参数c会造成过学习状态, 反正从我用SVM到现在,往往都是惩罚参数c过高会导致最终测试集合 的准确率并不是很理想在使用这个程序时也有小技巧,可以先大范围粗糙的找比较理想的c和g,然后再细范围找更 加理想的c和g.比如首先让c = 2人(-5),2人(-4),2人(5),g = 2人(-5),2人(-4),2人(5)在这个范围找比较理 想的c和g,如图:此时 bestc = 0.5,bestg=1,bestacc = 98.8764cross validation 的准确率 最终测试集合的准确率 Accuracy = 96.6292% (86/89) (classification)此时看到可以把c和g的范围缩小.还有步进的大小也可以缩小(程序里都有参数可以自己调 节,也有默认值可不调节).让c = 2人(-2),2人(-1.5),,2人(4),g = 2人(-4),2人(-3.5),,2人(4)在这个范围找比较理想的c 和g,如图:最终测试集合的准确率 Accuracy = 96.6292% (86/89) (classification)=上面第二个的测试的代码:1. load wine_SVM;3. train_wine = wine(1:30,:);wine(60:95,:);wine(131:153,:);4. train_wine_labels =wine_labels(1:30);wine_labels(60:95);wine_labels(131:153);5.5. test_wine = wine(31:59,:);wine(96:130,:);wine(154:178,:);6. test_wine_labels =wine_labels(31:59);wine_labels(96:130);wine_labels(154:178);8.7. train_wine,pstrain = mapminmax(train_wine);8. pstrain.ymin = 0;9. pstrain.ymax = 1;10. train_wine,pstrain = mapminmax(train_wine,pstrain);13.11. test_wine,pstest = mapminmax(test_wine);12. pstest.ymin = 0;13. pstest.ymax = 1;14. test_wine,pstest = mapminmax(test_wine,pstest);18.15. train_wine = train_wine;16. test_wine = test_wine;21.17. bestacc,bestc,bestg=SVMcg(train_wine_labels,train_wine,-2,4,-4,4,3,0.5,0.5,0.9);23.18. cmd = -c ,num2str(bestc), -g ,num2str(bestg);19. model = svmtrain(train_wine_labels,train_wine,cmd);20. pre,acc = svmpredict(test_wine_labels,test_wine,model);复制代码= = = = = = = = =我写的那个选取SVM中参数c和g的最佳值.的程序的代码 SVMcg.m=1. function bestacc,bestc,bestg=SVMcg(train_label,train,cmin,cmax,gmin,gmax,v,cstep,gstep,accstep)2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.%SVMcg cross validation by faruto%Email:farutoliyang QQ:516667408 BNU%last modified 2009.8.23%Super Moderator % about the parameters of SVMcgif nargin 10accstep = 1.5;endif nargin 8accstep = 1.5;cstep = 1;gstep = 1;endif nargin 7accstep = 1.5;v = 3;cstep = 1;gstep = 1;endif nargin 6accstep = 1.5;v = 3;cstep = 1;gstep = 1;gmax = 5;endif nargin 5accstep = 1.5;v = 3;cstep = 1;gstep = 1;33. gmax = 5;34. gmin = -5;35. end36. if nargin 437. accstep = 1.5;38. v = 3;39. cstep = 1;40. gstep = 1;41. gmax = 5;42. gmin = -5;43. cmax = 5;44. end45. if nargin bestacc69. bestacc= cg(i,j);70. bestc =basenumAX(i,j);71. bestg =basenumAY(i,j);72. end73. if ( cg(i,j) = bestacc & bestc basenumAX(i,j)74. bestacc= cg(i,j);75. bestc =basenumAX(i,j);76. bestg =basenumAY(i,j);77. end79.78. end79. end80. % to draw the acc with different c & g81. C,h = contour(X,Y,cg,60:accstep:100);82. clabel(C,h,FontSize,10,Color,r);83. xlabel(log2c,FontSize,10);84. ylabel(log2g,FontSize,10);85. grid on;88.复制代码这样那个libsvm-matlab工具箱我就有了自己的一个升级版本的了大家可以把这个SVMcg.m加进去一起用了libsvm-mat-2.89-3faruto version.rar(76.46 KB, 下载次数:1582) 里面有SVMcg.m使用说明.如下:bestacc,bestc,bestgSVMcg(trainabel,trai n,cmi n,cmax,gmi n,gmax,v,cstep,gstep,accstep)train_label:训练集标签.要求与libsvm工具箱中要求一致.train:训练集.要求与libsvm工具箱中要求一致.cmin:惩罚参数c的变化范围的最小值(取以2为底的对数后),即c_min = 2人(cmin).默认为 -5cmax:惩罚参数c的变化范围的最大值(取以2为底的对数后),即c_max = 2A(cmax).默认 为5gmin:参数g的变化范围的最小值(取以2为底的对数后),即g_min = 2A(gmin).默认为-5 gmax:参数g的变化范围的最小值(取以2为底的对数后),即g_min = 2A(gmax)默认为5v:cross validation的参数,即给测试集分为几部分进行cross validation默认为3cstep:参数c步进的大小.默认为1gstep:参数g步进的大小.默认为1accstep:最后显示准确率图时的步进大小.默认为1.5上面这些参数大家可以更改以期达到最佳效果也可不改用默认值名称捋摄日期标记EB回回svm.hsvm _model_matlab-.hlibsymreacl.csvm mode! matlab-.csvmpredict.c svm train.csyrri.Gppi heart_scal&.mat libsvmread.rri&jLv32* I i bsvmw rite, m &xw 3 2A svm p red i ct. m exw3 2皿 5vmtrain.m&xiv32:mak&.mSVMcg.rri遽 IiEswrrHTiat-2.&9-3aruto version.rai 咏1匸9的虽豆謫咚二_ COPYRlSm.Makefile_ KEADMEiLoveM
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!