libsvm-3.1-[FarutoUltimate3.1Mcode]——辅助函数简介(修改)
说明:
此工具箱是matlab中文论坛版主faruto在林智仁教授版本上改进的libsvm工具箱。
工具箱下载地址:http://www.matlabsky.com/thread-17936-1-1.html
本文主要介绍其中增加的参数(c和RBF核函数中的g)寻优函数和其他一些有用的函数。
一、Grid Search 网格搜索
(1)函数:SVMcgForClass.m (分类问题寻优)、SVMcgForRegress.m(回归问题参数寻优)。
详细内容见:http://www.matlabsky.com/thread-12411-1-1.html
(2)使用方法
[bestCVaccuracy,bestc,bestg]= SVMcgForClass(train_label,train,cmin,cmax,gmin,gmax,v,cstep,gstep,accstep) [bestCVmse,bestc,bestg]= SVMcgForRegress(train_label,train,cmin,cmax,gmin,gmax,v,cstep,gstep,msestep)
2、启发式遗传算法GA
(1)函数: gaSVMcgForClass.m(分类问题参数寻优)、gaSVMcgForRegress.m(回归问题参数寻优)
详情:http://www.matlabsky.com/thread-12412-1-1.html
(2)使用方法
默认范围:c(0.1-100)、g(0.01-1000)、5折交叉验证。
[bestCVaccuracy,bestc,bestg,ga_option]= gaSVMcgForClass(train_label,train,ga_option)常用格式:[bestCVaccuracy,bestc,bestg] = gaSVMcgForClass(train_label,train)
[bestCVmse,bestc,bestg,ga_option]= gaSVMcgForRegress(train_label,train,ga_option)
若想修改某些默认项比如c、g的范围,可以在原文件中直接修改。或者ga_option.cbound=[]; ……
(3)参数详解
ga_option:GA中的一些参数设置,可不输入(即去掉等号两边或左边的ga_option),有默认值,详细请看代码的帮助说明。
ga_option =struct('maxgen',200,'sizepop',20,'ggap',0.9,'cbound',[0,100],'gbound',[0,1000],'v',5);1. % maxgen:最大的进化代数,默认为200,一般取值范围为[100,500]2. % sizepop:种群最大数量,默认为20,一般取值范围为[20,100]3. % cbound = [cmin,cmax],参数c的变化范围,默认为(0,100]4. % gbound = [gmin,gmax],参数g的变化范围,默认为[0,1000]5. % v:SVM Cross Validation参数,默认为5
3、粒子群算法PSO
(1)函数:psoSVMcgForClass.m(分类问题参数寻优)、psoSVMcgForRegress.m(回归问题参数寻优)
详情:http://www.matlabsky.com/thread-12414-1-1.html
(2)使用方法
默认范围:c(0.1-100)、g(0.01-1000)、3折交叉验证。
适应度函数:分类问题适应度函数用的是cv下的分类准确率;回归问题适应度函数用的是cv下的mse。即fitness(j) = svmtrain(train_label, train, cmd);
[bestCVaccuracy,bestc,bestg,pso_option]= psoSVMcgForClass(train_label,train,pso_option)常用格式为:[bestCVaccuracy,bestc,bestg]= psoSVMcgForClass(train_label,train)
[bestCVmse,bestc,bestg,pso_option]= psoSVMcgForRegress(train_label,train,pso_option)若想修改某些默认项比如c、g的范围,可以在原文件中直接修改。或者在使用该函数之前:pso_option.popcmax=10000; ……
(3)参数详解
pso_option =struct('c1',1.5,'c2',1.7,'maxgen',200,'sizepop',20, ...'k',0.6,'wV',1,'wP',1,'v',5,...'popcmax',10^2,'popcmin',10^(-1),'popgmax',10^3,'popgmin',10^(-2));1. % c1:初始为1.5,pso参数局部搜索能力2. % c2:初始为1.7,pso参数全局搜索能力3. % maxgen:初始为200,最大进化数量4. % sizepop:初始为20,种群最大数量5. % k:初始为0.6(k belongs to [0.1,1.0]),速率和x的关系(V = kX)6. % wV:初始为1(wV best belongs to [0.8,1.2]),速率更新公式中速度前面的弹性系数7. % wP:初始为1,种群更新公式中速度前面的弹性系数8. % v:初始为3,SVM Cross Validation参数9. % popcmax:初始为100,SVM参数c的变化的最大值.10.% popcmin:初始为0.1,SVM参数c的变化的最小值.11.% popgmax:初始为1000,SVM参数g的变化的最大值.12. % popgmin:初始为0.01,SVM参数c的变化的最小值.
4、辅助函数
ClassResult.m函数,方便给出各种分类准确率,以及给出判别函数的权值w、偏置b、支持向量在原始训练集中的位置索引以及alpha系数。
格式:
CR = ClassResult(label, data, model,type)% type 1:输入的data为训练集% 2:输入的data为测试集%当输入的data为训练集时,需要事先在外部将标签转换为1,-1
出现的问题及解决措施:20170626更新
运行问题:
>> model = svmtrain(output_train,inputtrain','-s 0 -t 2 -c bestc -g bestg');
Error: C <= 0
解决方法:
1、分开运行,将SVMcgForClass得到的值直接写在svmtrain中。
[bestCVaccuracy,bestc,bestg] = SVMcgForClass(output_train,inputtrain',10,15,-8,8,5);
model = svmtrain(output_train,inputtrain','-s 0 -t 2 -c 16384 -g 0.5743');
注意:改变c和g的范围,可以影响最终分类准确率。
此法比较“笨”。
2、
%grid search 参数优化
[bestCVaccuracy,bestc,bestg] = SVMcgForClass(output_train,inputtrain',0,7,-8,8,5);
cmd = ['-c ',num2str(bestc),' -g ',num2str(bestg),'-s 0 -t 2'];
model = svmtrain(output_train,inputtrain',cmd)
即在中间加一步格式的转换。
libsvm-3.1-[FarutoUltimate3.1Mcode]——辅助函数简介(修改)相关推荐
- 抖音服务器升级暂时不能修改简介,抖音简介修改内容暂不可用,抖音简介哪些内容不能用...
原标题:抖音简介修改内容暂不可用,抖音简介哪些内容不能用 大家看到我这片文章不要急,花三分钟看完,很有帮助! 最近有小伙伴说自己抖音账号修改了简介,但不知道什么原因,老是提示简介暂不可用,这是什么原因 ...
- 【Android 逆向】整体加固脱壳 ( 脱壳点简介 | 修改系统源码进行脱壳 )
文章目录 一.脱壳点简介 二.修改系统源码进行脱壳 一.脱壳点简介 在上一篇博客 [Android 逆向]整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 rewriteD ...
- 【音频处理】Melodyne 选择工具使用 ( 主工具简介 | 修改音高 | 自动吸附 | 音符长度修改 | 长度自动吸附 | 设置音符分离线 | 设置片段分离线 )
文章目录 一.主工具简介 二.选择工具 | 修改音高 三.自动吸附 四.修改音符长度 五.修改音符长度自动吸附 六.音符分离线设置 七.设置片段分离线 一.主工具简介 主工具 是 主工具栏 中的 66 ...
- Kubernetes插件:Intel sriov-cni插件简介/修改
github blog:https://xftony.github.io sriov-cni简介 sriov-cni是hustcat/sriov-cni开发的一种容器网络插件(Container Ne ...
- 为什么自己编写的页面总是在那里抖动_为什么小红书的简介添加不上 个性签名的修改方法...
很多刚刚开通小红书的小可爱可能会迷惑,博主们的简介是怎么添加上去的?为什么自己小红书的简介添加不上?我们该怎么修改个性签名?别担心!掌握以下个性签名的修改方法,你也可以,跟着小编走,保你学会. 为什么 ...
- 【Android 逆向】ART 脱壳 ( 修改 /art/runtime/dex_file.cc#OpenCommon 系统源码进行脱壳 )
文章目录 一.要修改的源码 /art/runtime/dex_file.cc#OpenCommon 二.修改 /art/runtime/dex_file.cc#OpenCommon 函数源码进行脱壳 ...
- 【C 语言】指针间接赋值 ( 直接修改 和 间接修改 指针变量 的值 | 在函数中 间接修改 指针变量 的值 | 在函数中 间接修改 外部变量 的原理 )
文章目录 一.直接修改 和 间接修改 指针变量 的值 二.在函数中 间接修改 指针变量 的值 三.在函数中 间接修改 外部变量 的原理 一.直接修改 和 间接修改 指针变量 的值 直接修改 指针变量 ...
- 如何修改emcp的sn号_百家号领域选择错误怎么办?百家号怎么更改领域?
我之前就强调过,做自媒体运营,正式开始之前,先做好定位,选好自己擅长的或者感兴趣的细分领域,这样才能保证以后能长期做,保证内容的输出量.很很多新人听说自媒体能赚钱,就直接进来了,随便注册了一个账号,领 ...
- php 辅助函数,辅助函数 - Laravel 5.8 中文文档手册 - php中文网手册
辅助函数 简介 Laravel 包含各种各样的「全局」PHP 辅助函数,框架本身也大量的使用了这些功能函数:如果你觉的方便,你可以在你的应用中任意使用这些函数 可用方法 数组 & 对象 路径 ...
最新文章
- MasterPage,Page 2者之间事件的执行顺序
- 每日一皮:客户说想要增加一个新功能,你看我做的如何?
- 苹果签名分发系统需要什么配置的服务器呢,苹果/IOS超级签名分发系统
- php7.1 改动,PHP7错误处理机制修改
- maven package 知识(转载)
- python取列表中位数_Python如何获取列表(List)的中位数
- 学习-【前端】-angularjs基本框架以及向服务器发送请求的方法
- php体检管理系统,学生健康体检信息管理系统
- 如何完美实现微信自动发朋友圈自动添加好友等等
- echarts 的柱状图 填充色为透明
- 普适计算Topic推荐-AMiner
- 基于云服务创建实时运营数据分析服务(一)
- 使用maven编译打包用javac还是eclipse的jdt的问题
- C++中关于数据小数点,取整的方法
- 软件测试工程师岗位个人简历怎么写
- 开机自启动Screen并在后台运行程序
- 过亿云资源运维管控难?华为云CloudMap带你喝着咖啡做运维
- 算法课堂笔记01-语句频度计算
- 【状态模式】Java设计模式之状态模式
- RFID仓库管理解决方案-RFID智能仓储-RFID智能仓储-新导智能
热门文章
- 电脑计算机无法安3.5,Windows无法安装以下功能:.NET Framework 3.5(包括 .NET 2.0 和 3.0)解决方法...
- oracle表空间管理sql,oracle表空间管理维护
- c语言实现全排列并存储,C语言实现全排列和回溯法总结
- java objective-c,Objective-C基础教程学习笔记(附录)从Java转向Objective-C
- 拉线分切质量在线检测系统
- 机器视觉:SLAM技术详解
- echarts常用方法(一)
- OpenGL 获取当前屏幕坐标对应的三维坐标
- 团购潮冲击佣金模式 携程拒三倍赔付藏消费陷阱
- phoenixframe自动化测试平台对Firefox和chrome支持的说明