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个文件,都是以前我们碰到的过程文件,都可以用记事本打开。

【转】Windows下使用libsvm中的grid.py和easy.py进行参数调优的更多相关文章

  1. Windows下Git Bash中VIM打开文件中文乱码

    Windows下Git Bash中VIM打开文件中文乱码,解决方法是: 步骤一 admin@DESKTOP-O99620V MINGW64 /d/项目GGE/Hard_for_GGE (master) ...

  2. 搭建 windows(7)下Xgboost(0.4)环境 (python,java)以及使用介绍及参数调优

    摘要: 1.所需工具 2.详细过程 3.验证 4.使用指南 5.参数调优 内容: 1.所需工具 我用到了git(内含git bash),Visual Studio 2012(10及以上就可以),xgb ...

  3. 【Spark篇】---Spark中内存管理和Shuffle参数调优

    一.前述 Spark内存管理 Spark执行应用程序时,Spark集群会启动Driver和Executor两种JVM进程,Driver负责创建SparkContext上下文,提交任务,task的分发等 ...

  4. 【深度学习篇】--神经网络中的调优一,超参数调优和Early_Stopping

    一.前述 调优对于模型训练速度,准确率方面至关重要,所以本文对神经网络中的调优做一个总结. 二.神经网络超参数调优 1.适当调整隐藏层数对于许多问题,你可以开始只用一个隐藏层,就可以获得不错的结果,比 ...

  5. 在 Linux/windows下 命令行中使用和执行 PHP 代码[交互式php]

    [注释]在ubuntu下,升级php到7.1版本,虽然提示的是Interactive mode enabled, 但实际上可以直接书写命令,和interactive shell效果一样. 一:wind ...

  6. vmware player 在windows下nat模式中的端口映射

    1.设置虚拟机nat共享的网卡为固定ip vmware虚拟机使用nat网络时,是VMware Network Adapter VMnet8网卡提供的nat服务.查看VMware Network Ada ...

  7. windows下在yii中使用mongodb

    1.编译或下载对应dll动态链接库拓展文件,下载地址:点我,不知道如何编译windows下的dll拓展->点我 2.找到web服务器软件,如apache,nginx等webserver处理浏览器 ...

  8. 如何在Windows下用cpu模式跑通py-faster-rcnn 的demo.py

    关键字:Windows.cpu模式.Python.faster-rcnn.demo.py 声明:本篇blog暂时未经二次实践验证,主要以本人第一次配置过程的经验写成.计划在7月底回家去电脑城借台机子试 ...

  9. Linux下jetty报java.lang.OutOfMemoryError: PermGen space及Jetty内存配置调优解决方案

    Linux下的jetty报java.lang.OutOfMemoryError: PermGen space及Jetty内存配置调优解决方案问题linux的jetty下发布程序后再启动jetty服务时 ...

随机推荐

  1. Web Application Penetration Testing Local File Inclusion (LFI) Testing Techniques

    Web Application Penetration Testing Local File Inclusion (LFI) Testing Techniques Jan 04, 2017, Vers ...

  2. SpringMVC前后端数据交互总结

    控制器 作为控制器,大体的作用是作为V端的数据接收并且交给M层去处理,然后负责管理V的跳转.SpringMVC的作用不外乎就是如此,主要分为:接收表单或者请求的值,定义过滤器,跳转页面:其实就是ser ...

  3. webapi returntype

  4. PHPMailer < 5.2.18 - RCE EXP(Bash)

    #!/bin/bash# CVE-2016-10033 exploit by opsxcq# https://github.com/opsxcq/exploit-CVE-2016-10033echo ...

  5. Ubuntu下通过SSH远程登录服务器的方法

    1. 首先在服务器上安装ssh的服务器端.$ sudo aptitude install openssh-server 2. 启动ssh-server.$ /etc/init.d/ssh restar ...

  6. Java线程的概念

    1.      计算机系统 使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行:当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了. 缓 ...

  7. C# socket send方法

    转  http://msdn.microsoft.com/zh-cn/library/d318fkch(v=vs.80).aspx

  8. 页面解耦—— 统跳协议和Rewrite引擎

    原文: http://pingguohe.net/2015/11/24/Navigator-and-Rewrite.html 解耦神器 —— 统跳协议和Rewrite引擎 Nov 24, 2015 • ...

  9. memcache服务器端及PHP memcache扩展的安装(转载)

    memcache服务器端的安装(windows版)    1.下载memcached软件 32位下载地址: memcached-win32-1.4.4-14.zip(直接下载) 下载页面: 64位下载 ...

  10. Linux kernel make 常用选项介绍

    Linux kernel 编译方法大全记录 一.这是一个我自己写的自动make脚本: #!/bin/sh export ARCH=arm export CROSS_COMPILE=arm-linux- ...