【转】Windows下使用libsvm中的grid.py和easy.py进行参数调优

 

libsvm中有进行参数调优的工具grid.py和easy.py可以使用,这些工具可以帮助我们选择更好的参数,减少自己参数选优带来的烦扰。

所需工具:libsvm、gnuplot

本机环境:Windows7(64 bit) ,Python3.5

1、相关程序的下载和安装

1.1、下载libsvm,我用的是libsvm-3.18.zip,下载后直接解压到任意位置,我解压到C:\libsvm-3.18下。

1.2、下载python,我下的是python-3.5.msi,双击该文件安装到默认位置,我安装到C:\Users\Administrator\AppData\Local\Programs\Python\Python35下。将该路径添加到系统环境变量中。

1.3、下载gunplot,我下的是gp460-win32-setup.exe,双击该文件安装到默认位置,我安装到C:\Program Files\gnuplot下。

 

2、grid.py使用

文件grid.py是对C-SVC的参数c和γ(gamma)做优选的,原理也是网络遍历,假设我们要对目录C:\libsvm-3.18\tool下的样本文件heart_scale做优选,其具体用法为:

第一步:打开C:\libsvm-3.18下的tools文件夹,找到grid.py文件。用python打开(不能双击,而要右键选择“Edit with IDLE” 或者先打开IDLE,再添加进去),修改self.svmtrain_pathname和self.gnuplot_pathname的路径。

(修改文件时要注意,要修改else下的self.svmtrain_pathname和self.gnuplot_pathname,而不是if not is win32)

第二步:运行cmd,进入dos环境,定位到C:\libsvm-3.18\tools文件夹,这里是放置grid.py的地方。

第三步:输入以下命令:

python grid.py heart_scale

你就会看到dos窗口飞速乱串的[local]数据,以及一个gnuplot的动态绘图窗口。大约过10秒钟,就会停止。Dos窗口中的[local]数据是局部最优值,这个不用管,直接看最后一行:

2048.0 0.0001220703125 84.0741

其意义表示:C=2048.0;γ=0.0001220703125;交叉验证精度CV Rate=84.0741%,这就是最优结果。

第四步:打开目录C:\libsvm-3.18\tools,我们可以看到新生成了两个文件:heart_scale.out和heart_scale.png,第一个文件就是搜索过程中的[local]和最优数据,第二个文件就是gnuplot图像。

现在,grid.py已经运行完了,你可以把最优参数输入到svm-train中进行训练了。

 

3、easy.py使用方法

文件easy.py对样本文件做了“一条龙服务”,从参数优选,到文件预测。因此,其对grid.py、svm-train、svm-scale和svm-predict都进行了调用(当然还有必须的python和gnuplot)。因此,运行easy.py需要保证这些文件的路径都要正确。还需要样本文件和预测文件,这里样本文件还是用heart_scale,预测文件我们赋值一份然后改名heart_test,下面说说使用方法:

第一步:打开easy.py,修改#example for windows下的几个路径:

 

第二步:运行cmd,进行dos环境,定位到防止easy.py的目录C:\libsvm-3.18\tools

第三步:输入命令:

python easy.py heart_scale heart_test

就会看到一个gnuplot的动态绘图窗口。大约20s以后停止,dos窗口显示为:

Scaling training data… 
Cross validation… 
Best c=2048.0, g=0.0001220703125 CVrate=84.0741 
Training… 
Output model: heart_scale.model 
Scaling testing data… 
Testing… 
Accuracy = 85.1852% (230/270) (classification) 
Output prediction: heart_test.predict

这就是最终预测结果,可以看到第三行就是调用grid.py的结果。在C:\libsvm-3.18\tools下你会看到又多了7个文件,都是以前我们碰到的过程文件,都可以用记事本打开。

posted @ 2017-01-04 16:17  阿玛尼迪迪  阅读(...)  评论(...编辑  收藏