• 【转】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:UsersAdministratorAppDataLocalProgramsPythonPython35下。将该路径添加到系统环境变量中。

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

     

    2、grid.py使用

    文件grid.py是对C-SVC的参数c和γ(gamma)做优选的,原理也是网络遍历,假设我们要对目录C:libsvm-3.18 ool下的样本文件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 ools文件夹,这里是放置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 ools,我们可以看到新生成了两个文件: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 ools

    第三步:输入命令:

    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 ools下你会看到又多了7个文件,都是以前我们碰到的过程文件,都可以用记事本打开。

  • 相关阅读:
    ch2_CaseStudy_CanonicalNASLScript.txt
    树形数据广度排序处理示例.sql
    编程管理SQL SERVER的帐号.sql
    索引影响查询结果顺序的示例
    校验表中数据是否有循环编码的通用存储过程.sql
    BackupAndRestoreSmallWorks.sql
    cPanel下安装GodaddySSL教程
    ExcludingRNG.cs
    SymmetricAlgorithmEvaluator.cs
    操作SQLSERVERAGENT服务的扩展存储过程.sql
  • 原文地址:https://www.cnblogs.com/codingmengmeng/p/6249127.html
Copyright © 2020-2023  润新知