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
是训练数据(有一定格式)