一、下载并安装Python安装包
从python官网上下载windows下的安装包python-2.7.3.msi并安装
二、检查本地电脑是32位机还是64位机从python官网上下载windows下的安装包python-2.7.3.msi并安装
打开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包结构
(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包的安装使用。
(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。