libsvm自动寻参(参数优化)

libsvm自动寻找最优参数

支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane),svm有两个重要参数C(惩罚因子)和gamma(核函数参数)

C惩罚因子:取值越大对误差的容忍度越低,但容易出现过拟合;取值越小则容易出现欠拟合。

gamma:决定了数据映射到新的特征空间后的分布,gamma越大,支持向量越少,gamma值越小,支持向量越多。支持向量的个数影响训练与预测的速度。

但对于这两个参数的确定,人为去寻找比较困难,并且很难找到最优的参数。而libsvm中有一个grid.py脚本,可以自动寻找出最优的参数。

1.下载安装libsvm,进入libsvm目录执行make

2.安装gnuplot:pip install gnuplot

3.修改tools下的grid.py文件:

主要修改svm-tain.c和gnuplot的路径,Linux默认的地址就是对的。Windows系统修改为svmtain.exe(libsvm/windows)和gnuplot.exe的路径。

4.运行grid.py进行参数寻找:

在tools下打开命令行运行grid.py:python grid.py heart_scale
heart_scale是训练数据(有一定格式)

5.运行完成后,最后一行会有三个数据,第一个为C,第二个为gamma,最后一个为交叉验证精度,在tools文件夹下会生成两个文件:heart_scale.out和,第一个文件就是搜索过程中的[local]和最优数据,第二文件就是gnuplot图像。

heart_scale.png

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值