林智仁LIBSVM python包的安装与使用

来源:互联网 发布:淘宝联盟手机版自己买 编辑:程序博客网 时间:2024/05/15 04:32
一、下载并安装Python安装包
从python官网上下载windows下的安装包python-2.7.3.msi并安装

二、检查本地电脑是32位机还是64位机
打开IDL
E(python GUI),输入
>>>import sys
>>> sys.version
32位机将出现字符:‘2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)]’
64位机将出现字符:‘2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)]' 
三、下载
LIBSVM并安装Python版 
1.下载LIBSVM包(http://www.csie.ntu.edu.tw/~cjlin/libsvm/oldfiles/),如libsvm-3.20.zip
2.解压libsvm-3.20.zip,你将会看到如图1所示的目录结构。
 图片
图1  
LIBSVM包结构
3.安装python版libsvm包
(1)32位机:
    1)将windows文件夹中找到动态链接库libsvm.dll,将其添加到系统目录,如`C:\WINDOWS\system32\’。

    2)将上图中python目录下的svm.py与svmutil.py复制到自己需要开发的工程目录下面。当然,也可以将其拷贝到系统安装的python包目录下,如(D:\Anaconda\Lib\site-packages\svm),然后配置python的环境变量,如下图:

然后重启电脑,就能保证后面引用svmutil包时不会出错。

    3)在需要使用SVM包的Python文件中通过“from svmutil import *”引入SVM模块接口。
(2)64位机:(稍微复杂点,需要自己编译64位的动态链接库libsvm.dll,因为自带的是32的.dll
    1)需要
Microsoft Visual Studio(VS)开发环境。如果没有可以自己安装,也可以到别人Windows 64位机器上使用已安装的VS。(我这里安装的是VS 2010)
    2)
在程序列表中的Microsoft Visual Studio 2010/Visual Studio Tools下找到Visual Studio x64 Win64 Command Prompt(2010)(注意一定要是64位的command prompt),双击该Command Prompt将会弹出命令行窗口,如图2所示。
    3)通过cd命令进入到LIBSVM所在文件夹libsvm-3.20。
    4)
输入nmake -f Makefile.win clean all。这时libsvm-3.16的windows目录下将生成64位的动态链接库。至此,前面这个四个步骤如图2所示。

图2  
Visual Studio x64 Win64 Command Prompt(2010)命令窗口
    5)再进行“(1)32位机”中所述的操作即可完成python版libsvm包的安装使用。
4.python版libsvm包的测试使用
    (1)输入测试代码:
    >>> from svmutil import *

    >>> y, x = svm_read_problem(‘../heart_scale’)
    >>> m = svm_train(y[:200], x[:200], ‘-c 4’)
    >>> p_label, p_acc, p_val = svm_predict(y[200:], x[200:], m)
    (2)测试代码执行结果输出:
    optimization finished, #iter = 257
    nu = 0.351161
    obj = -225.628984, rho = 0.636110
    nSV = 91, nBSV = 49
    Total nSV = 91
    Accuracy = 84.2857% (59/70) (classification)
5.python版libsvm包部分接口说明
    在libsvm-3.16的python文件夹下主要包括了两个文件svm.py和svmutil.py。
    svmutil.py接口主要包括了high-level的函数,这些函数的使用和LIBSVM的MATLAB接口大体类似。svmutil中主要包含了以下几个函数:
    svm_train()        : train an SVM model
    svm_predict()      : predict testing data
    svm_read_problem() : read the data from a LIBSVM-format file.
    svm_load_model()   : load a LIBSVM model.
    svm_save_model()   : save model to a file.
    evaluations()      : evaluate prediction results.
    svm.py接口主要包括了一些low-level的应用。在svm.py中采用了python内置的ctypes库,由此python可以直接访问svm.h中定义的C结构和接口函数。svm.py主要运用了四个数据结构svm_node, svm_problem, svm_parameter和svm_model。
0 0