欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOCX文档下载
 

利用GA优化SVM参数的一点小探索

  • 资源ID:164512014       资源大小:109.01KB        全文页数:6页
  • 资源格式: DOCX        下载积分:15积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要15积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

利用GA优化SVM参数的一点小探索

利用GA优化SVM参数的一点小探索利用 GA优化 SVM 参数的一点小探索其中 GA 代码思路,部分参照版主shiOlfg的进行的修改.部分参照雷英杰MATLAB遗传 算法工具箱与应用中算法自己实现.O(G_G)O.利用GA优化SVM中的c和gPS:图像好像有问题,怎么最佳适应度有的点会比平均的小?怪不管了.反正结 果图如此,晚上回来再看看怎么回事先这样.O(G_G)OPPS:那个啥bug找到了.已作了修改.S还做了一 点小优化从使用grid search优化SVM参 数到用PSO,再到用GA优化SVM参数,俺 总结出一个经验,把 C 控制住了.不能让 C太大!!!无论你用什么办法优化,在分 类准确率都达到最高的参数里,优先选 择C小的那组参数才是上策 当然只是我个人的一点小经验!o(n_n)o图:结果: 复制内容到剪贴板代码:bestc =7.7161bestg =2.7382 bestCVaccuarcy =98.8764Accuracy = 100% (89/89) (classification)Accuracy = 96.6292% (86/89) (classification)Elapsed time is 41.767334 seconds.代码:测试文件代码: 复制内容到剪贴板代码:% 清空环境clcclear%load wine;train = wine(1:30,:);wine(60:95,:);wine(131:153,:); train_label =wine_labels(1:30);wine_labels(60:95);wine_labels(131:153); test = wine(31:59,:);wine(96:130,:);wine(154:178,:); test_label =wine_labels(31:59);wine_labels(96:130);wine_labels(154:178);train,pstrain = mapminmax(train');pstrain.ymin = 0;pstrain.ymax = 1;train,pstrain = mapminmax(train,pstrain);test,pstest = mapminmax(test');pstest.ymin = 0;pstest.ymax = 1;test,pstest = mapminmax(test,pstest);train = train'test = test'%tic;ga_option.maxgen = 200;ga_option.sizepop = 50; ga_option.pCrossover = 0.4;ga_option.pMutation = 0.01; ga_option.cbound = 0.1,100; ga_option.gbound = 0.01,1000;ga_option.v = 3; bestCVaccuarcy,bestc,bestg,ga_option = gaSVMcgForClass(train_label,train,ga_option);bestcbestg bestCVaccuarcy cmd = '-c ',num2str(bestc),' -g ',num2str(bestg); model = svmtrain(train_label,train,cmd);pretrain,trainacc = svmpredict(train_label,train,model); pretest,testacc = svmpredict(test_label,test,model);toc;gaSVMcgForClass.m 代码复制内容到剪贴板代码:function bestCVaccuarcy,bestc,bestg,ga_option = gaSVMcgForClass(train_label,train,ga_option)% gaSVMcgForClass% by faruto% 2009.10.07% 参数初始化if nargin = 2 ga_option =struct('maxgen',100,'sizepop',20,'pCrossover',0.4,'pMutation',0.01, .'cbound',0.1,100,'gbound',0.01,1000,'v',3);end% maxgen: 最大的进化代数 , 默认为 100, 一般取值范围为 100,500% sizepop: 种群最大数量 , 默认为 20, 一般取值范围为 20,100% pCrossover: 交叉概率 , 默认为 0.4, 一般取值范围为 0.4,0.99% pMutation: 变异概率 , 默认为 0.01, 一般取值范围为 0.0001,0.1% cbound = cmin,cmax, 参数 c 的变化范围 , 默认为 0.1,100% gbound = gmin,gmax, 参数 g 的变化范围 , 默认为 0.01,1000% v:SVM Cross Validation 参数 , 默认为 3c_len_chromosome = ceil(log2(ga_option.cbound(2)-ga_option.cbound(1)*100);g_len_chromosome = ceil(log2(ga_option.gbound(2)-ga_option.gbound(1)*100); len_chromosome = c_len_chromosome+g_len_chromosome;% 将种群信息定义为一个结构体 individuals=struct('fitness',zeros(1,ga_option.sizepop), .'chromosome',zeros(ga_option.sizepop,len_chromosom e);% 每一代种群的平均适应度 avgfitness_gen = zeros(1,ga_option.maxgen);% 每一代种群的最佳适应度 bestfitness_gen = zeros(1,ga_option.maxgen);% 最佳适应度bestfitness = 0;% 适应度最好的染色体 bestchromosome = zeros(1,len_chromosome);% 初始化种群for i = 1:ga_option.sizepop% 编码individuals.chromosome(i,:) = unidrnd(2,1,len_chromosome)-1;% 解码c,g = ga_decode(individuals.chromosome(i,:),ga_option.cbound,ga_option.gbou nd);% 计算初始适应度 (CV 准确率 )cmd = '-v ',num2str(ga_option.v),' -c ',num2str( c ),' -g ',num2str( g );individuals.fitness(i) = svmtrain(train_label, train, cmd); end% 找最佳的适应度和最好的染色体的位置 bestfitness,bestindex=max(individuals.fitness);% 最好的染色体bestchromosome = individuals.chromosome(bestindex,:);% 初始染色体的平均适应度avgfitness_gen(1) = sum(individuals.fitness)/ga_option.sizepop;% 迭代寻优for i=1:ga_option.maxgen% Selection Operatorindividuals = Selection(individuals,ga_option);% Crossover Operatorindividuals = Crossover(individuals,ga_option);% Mutation Operatorindividuals = Mutation(individuals,ga_option);% 计算适应度for j = 1:ga_option.sizepop% 解码c,g = ga_decode(individuals.chromosome(j,:),ga_option.cbound,ga_option.gbou nd);% 计算初始适应度 (CV 准确率 )cmd = '-v ',num2str(ga_option.v),' -c ',num2str( c ),' -g ',num2str( g );individuals.fitness(j) = svmtrain(train_label, train, cmd); end% 找最佳的适应度和最好的染色体的位置 new_bestfitness,bestindex=max(individuals.fitness);% 最好的染色体new_bestchromosome = individuals.chromosome(bestindex,:);new_c,g = ga_decode(new_bestchromosome,ga_option.cbound,ga_option.gbound);c,g = ga_decode(bestchromosome,ga_option.cbound,ga_option.gbound);if new_bestfitness = bestfitness && new_c < cbestfitness = new_bestfitness;bestchromosome = new_bestchromosome;endif new_bestfitness > bestfitnessbestfitness = new_bestfitness;bestchromosome = new_bestchromosome;end% 这一代染色体的最佳适应度 bestfitness_gen(i) = bestfitness;% 这一代染色体的平均适应度avgfitness_gen(i) = sum(individuals.fitness)/ga_option.sizepop;end% 结果分析figure;hold on;plot(bestfitness_gen,'r'); plot(avgfitness_gen);legend('最佳适应度',平均适应度');title('适应度曲线','(终止代数二',num2str(ga_option.maxgen),',种群数量 pop=',num2str(ga_option.sizepop),')');xlabel('进化代数');ylabel('适应度');axis(0 ga_option.maxgen 0 100);grid on;bestc,bestg = ga_decode(bestchromosome,ga_option.cbound,ga_option.gbound); bestCVaccuarcy = bestfitness_gen(ga_option.maxgen);回头 libsvm-mat-faruto version 就又可以更新了. 嘿嘿

注意事项

本文(利用GA优化SVM参数的一点小探索)为本站会员(s****a)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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