浅谈libsvm3.21,matlab编程各个参数作用
来源:互联网 发布:js定时器停止执行函数 编辑:程序博客网 时间:2024/04/28 23:30
最近在研究matlab的libsvm的包,SVM相比神经网络等传统回归、分类算法更吸引人的地方在于加入了置信风险,神经网络算法权重的指导在于经验风险,分经验风险往往不能正真反映实际情况,可能样布分布不均匀,抑或样本量太少。因此掌握SVM的应用可以好好进行对比。
1、首先你需要下载livsvm的工具包,在网上搜索都有,如果没有的话,我上传了一份点击打开链接
2、将MATLAB工作目录进入 libsvm-3.21->进入matlab
3、命令窗输入:mex -setup 随便选一个编译器,我用的是vs2010
4、命令窗输入:make
如果显示编译成功,就成功咯。
好了,我们看看如何调参。
输入下方代码在脚本,记得把libsvm-3.21下的heart_scale数据包复制到matlab文件夹下,否则打不开。
[heart_scale_label, heart_scale_inst] = libsvmread('heart_scale');model = svmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07');[predict_label, accuracy, dec_values] = svmpredict(heart_scale_label, heart_scale_inst, model);
运行应该是以下结果
optimization finished, #iter = 134
nu = 0.433785
obj = -101.855060, rho = 0.426412
nSV = 130, nBSV = 107
Total nSV = 130
Accuracy = 86.6667% (234/270) (classification)
86.6667% 不高,我们来调一调参数:
svmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07');第三个参数做做变化,改为‘-c 11 -g 0.07’
如下:
[heart_scale_label, heart_scale_inst] = libsvmread('heart_scale');model = svmtrain(heart_scale_label, heart_scale_inst, '-c 11 -g 0.07');[predict_label, accuracy, dec_values] = svmpredict(heart_scale_label, heart_scale_inst, model);
optimization finished, #iter = 538
nu = 0.308611
obj = -736.884416, rho = 0.952696
nSV = 113, nBSV = 57
Total nSV = 113
Accuracy = 92.5926% (250/270) (classification)
恩,提高了不少
还是不满意
第三个参数接着做变化:
svmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07 -t 1');结果为:
optimization finished, #iter = 434
nu = 0.367386
obj = -855.073089, rho = -0.404518
nSV = 134, nBSV = 67
Total nSV = 134
Accuracy = 92.963% (251/270) (classification)
提高了一点点
再来改:
svmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 0.7 -t 1');改为- g 0.7
结果:
optimization finished, #iter = 2646
nu = 0.005624
obj = -8.352630, rho = -1.049725
nSV = 108, nBSV = 0
Total nSV = 108
Accuracy = 100% (270/270) (classification)
支持向量少了一点,但是结果不错100%,算满意了
可能有朋友问各个参数什么意思,怎么用,给大家推荐一篇文章,我这里只做补充而已:
点击打开链接
希望有帮助
- 浅谈libsvm3.21,matlab编程各个参数作用
- LibSVM3.21 Matlab 安装
- matlab中安装libsvm3.21和使用
- OnItemClick各个参数的作用
- OnItemClick各个参数的作用
- OnItemClick各个参数的作用
- OnItemClick各个参数的作用
- matlab2013a安装libsvm3.21
- LIBSVM3.2.0中的matlab文档说明
- libsvm3.20在matlab中的使用
- eclipse.ini中各个参数的作用
- eclipse.ini中各个参数的作用
- eclipse.ini中各个参数的作用
- iOS @property各个参数的作用
- 学习<opencv> CascadeClassifier::detectMultiScale 各个参数作用
- 在matlab R2010a下安装libsvm3.11(win7系统)
- 浅谈一个布尔参数的作用
- ASP.net 中 OutputCache 指令各个参数的作用
- Windows程序设计(0)——编程之前
- CSS设置行间距和字间距
- 设计模式---创建类型---生成器
- java学习之路 之 面向对象编程-多维数组-练习题
- 世界第一难的恋爱(3)
- 浅谈libsvm3.21,matlab编程各个参数作用
- linux操作系统下,尝试安装无线网卡驱动过程
- Java成员变量、局部变量、静态变量、成员方法、全局方法等概念的区别
- 文章标题
- 数据库设计
- SQL Server数据库置疑后无法删除问题
- JS笔记:面向对象
- 折半查找
- 114.You plan to implement the distributed database system in your company. You invoke Database Confi