• libsvm中tools(easy.py,subset.py,grid.py,checkdata.py)的使用


    这几天在用libsvm(2.8.6)中的一些工具,总结一下.

    libsvm的一些工具还是非常有用的,1.可以调用subset.py将你的样本集合按你所想要的比例进行抽样出两个子样本集合.2.还可以调用grid.py做关于(C,gamma)的交叉验证参数选择,可以轻松的搜索到最好的参数对(C,gamma).3.还可以调用easy.ph一步到位完成svm的整个挖掘过程,最后得出交叉验证精度,最有参数对和测试集上的测试精度.4.还可以调用checkdata进行检查你的数据格式是否有错误.这些操作可以让大伙省事很多.

    libsvm(2.8.6)中主要有四个工具:easy.py,subset.py,grid.py,checkdata.py.

    运行环境要求和设置:

    需要准备两个工具.

    一个工具是:python编译环境,这个到网上下一个来安装就好了(注意要设置环境变量path),下载python.exe 2.5.1; 另一个工具就是gnuplot.exe,到网上下一个,我用的是版本4.2的,下载gnuplot.exe 安装完上面的软件还不能运行,还要修改easy.py,grid.py的设置.将他们对应的代码" gnuplot_exe = r"c:\tmp\gnuplot\bin\pgnuplot.exe""都改为你的pgnuplot.exe所在的路径,

    比如我的文件在当前目录的上一级目录,就是和tools文件夹在同一级目录,那么我的设置应该为" gnuplot_exe = r"..\gnuplot\bin\pgnuplot.exe"".

    这样设置就完成了,我们只需要到控制台下运行上面相应的四个程序即可.

    注意:下面的python命令中,我们默认所有需要处理的样本数据集都是放在在tools目录下,如果数据文件不在tools目录下则我们需要用绝对路径指定数据的位置.

    下面分别介绍调用格式:

    从其文档可以发现其功能分别为:

    (1) easy.py:只要简单输入,就可以完成svm挖掘的所有步骤,即:

    1. Conduct simple scaling on the data

    2.Consider the RBF kernel K(x; y)

    3.Use cross-validation to nd the best parameter C and

    4.Use the best parameter C and to train the whole training set

    5.Test

    对于初学者而言这个文件无非是他们的救命稻草,可以简单看看他的语法:

    在控制台下走到easy.py所在的目录下:

    $ python easy.py train.3 test.3

    Scaling training data...归一化数据

    Cross validation...在训练集上做交叉验证

    Best c=128.0, g=0.125 CV rate=88.9186 (通过网格搜索法对每个参数对做交叉验证,选择交叉验证精度最高所对应的参数.)

    Training...( 将上面得到的参数对在训练集合上做模型训练)

    Output model: crttrain.model (保存模型到文件)

    Scaling testing data... (归一化数据)

    Testing...(用训练得出的模型对测试集进行测试)

    Accuracy = 87.8049% (36/41) (classification)(测试的精度)

    Output prediction: crttest.predict (输出预测结果)

    (在交叉验证过程中,会有一个图形界面显示参数选择的情况,這就是gnuplot.exe的作用了)

    (2).grid.py:用于做交叉验证,选择最好的参数对.

    用法:

    在控制台下走到grid.py所在的目录下:

    $python grid.py crttrain

    [local] 5 -7 86.9186 (best c=32.0, g=0.0078125, rate=86.9186)

    [local] -1 -7 85.1744 (best c=32.0, g=0.0078125, rate=86.9186)

    [local] 5 -1 77.0349 (best c=32.0, g=0.0078125, rate=86.9186)

    .......

    [local] 13 -15 85.1744 (best c=32.0, g=0.0078125, rate=86.9186)

    [local] 13 3 55.5233 (best c=32.0, g=0.0078125, rate=86.9186)

    [local] 13 -9 83.1395 (best c=32.0, g=0.0078125, rate=86.9186)

    [local] 13 -3 79.6512 (best c=32.0, g=0.0078125, rate=86.9186)

    32.0 0.0078125 86.9186 (c=32,gamma=0.0078125 交叉验证精度)

    (3) subset.py 用于按个数分割样本集成训练集和测试集.

    用法:

    在控制台下走到subset.py所在的目录下:

    $python subset.py crt 100 crttrain crttest

    参数说明:

    crt:样本集合;

    100:训练集样本个数;

    crttrain:存储100个训练样本;

    crttest:存储剩下的样本集做为测试集;

    如果成功没有输出信息,反之则有错误提示.

    (4) checkdata.py 用于检测样本集存储格式是否正确

    在控制台下走到subset.py所在的目录下:

    $python checkdata.py crt

    No error. (表示没有错)

  • 相关阅读:
    mac修改brew源
    分屏工具xpanes
    MySQL自增id不连续问题
    Ubuntu16.04安装zkui
    antlr解析hive语句
    Elasticsearch学习笔记——索引模板
    Elasticsearch6.2.1安装elasticsearch-sq插件
    多用户同时操作一条Mysql记录问题
    Nexus上传npm包
    Nginx请求转发
  • 原文地址:https://www.cnblogs.com/me115/p/1718052.html
Copyright © 2020-2023  润新知