libsvm——参数优化工具grid.py的使用

工具grid.py主要通过交叉验证的方法求最优的核函数参数C和gamma。

参考来源:http://blog.csdn.net/flydreamgg/article/details/4470477


一、grid.py简介

grid.py作用:

grid.py is a parameter selection tool for C-SVM classification usingthe RBF (radial basis function) kernel. It uses cross validation (CV)
technique to estimate the accuracy of each parameter combination inthe specified range and helps you to decide the best parameters foryour problem.

命令格式:

Usage:  grid.py [-log2c begin,end,step] [-log2g begin,end,step] [-v fold]  [-svmtrain pathname] [-gnuplot pathname] [-out pathname] [-png pathname]  [additional parameters for svm-train] dataset
例子:The value of some options can be "null." For example, `-log2c -1,0,1 -log2 "null"' means that C=2^-1,2^0,2^1 and g=LIBSVM's default gamma
value. That is, you do not conduct parameter selection on gamma.


二、具体使用方法


友情提示,耗费了一晚上时间才搞定,吐血啊。。。千万不要漏步骤,严格跟着来保证没问题。

当然,你也可以发挥,比如dos的输入那里, 总起来说,命令为python 目标文件 样本文件,其原则是要让系统找得到文件,具体见参考博客。假如系统提示你“不是内部或外部命令”,说明你python的路径错误,而如果是‘not found file’的提示,很可能是其他两个文件路径错误。


1、安装所需软件,注意安装路径要简单,文件夹的名字不要有中文等。

安装python3.6版本,安装在D:\python36中。

安装gnuplot。安装位置为D:\Program Files (x86)\gnuplot。

(libsvm3.22中的提示:For windows users, please use pgnuplot.exe. If you are using gnuplot3.7.1, please upgrade to version 3.7.3 or higher.

 The version 3.7.1 has a bug. If you use cygwin on windows, please use gunplot-x11.)

2、更改grid.py中的路径。

(本人libsvm安装在D:\Project_matlab\libsvm322)

用python打开libsvm322下的tools中的grid.py即右键选择Edit withIDLE打开

然后修改svmtain.exe(libsvm/windows)和gnuplot.exe的路径。

注意:windows系统中,只需要更改else的部分。切记,虽然更改的是gnuplot路径,但最后的.exe文件是pgnuplot.exe。



3、运行cmd,进入dos环境。

首先,定位到grid.py所在的文件夹的位置即D:\Project_matlab\libsvm322\tools,并将训练数据(按官方libsvm的格式存储的数据)放在tools文件夹中。

定位方法:

输入d:,回车,进入D盘;

输入cd/ Project_matlab/libsvm322/tools,回车,完成定位。

再输入 d:/python36/python grid.py heart_scale,回车。

此时,你会看到一堆[local]数据,以及gnuplot的动态绘图窗口。


注意:




4、最终结果。

最后一行即为最终结果。


其意义表示:C = 2048.0;γ=0.0001220703125(γ是哪个参数?参看LibSVM学习(三)中svmtrain的参数说明);交叉验证精度CV Rate = 84.0741%,这就是最优结果。

打开Project_matlab/libsvm322/tools文件夹,可以看到新生成了两个文件:heart_scale.out和heart_scale.png,第一个文件就是搜索过程中的[local]和最优数据,第二文件就是gnuplot图像。



到这里,关于grid.py的使用就结束了,但是我们可以发现,grid.py需要使用的数据是libsvm格式的,如何将.xls格式的数据转换为libsvm格式,将在下一篇介绍。



  • 11
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值