/

libsvm环境配置及使用方法

前言

在刚刚学习机器学习内容的时候,就给了自己很清晰的定位“未想有所成,只想有所用”。因为机缘巧合接触的机器学习,假期想学习的内容里面需要安装libsvm包,在翔翔的远程帮助和及其懈怠的状态下,我按照以下步骤在五分钟之内解决了安装libsvm包的时候出现的问题。(前提是你在Anaconda找不到libsvm的包)

环境、所用到的软件及其版本

win 10
Anaconda3_5.5.0
python 3.6
Visual Studio 2013
(当然这个不在我电脑上=v=,感兴趣地可以按照我之后给的链接在本机运行一下)
PyCharm 2017.2.3

libsvm环境配置

以下文件路径仅仅是我电脑中的,如果存放的位置不一样,请自行调整

  1. 因为电脑装VS之后出现了点问题,所以不能按照林智仁LIBSVM python包的安装与使用这个链接中64位机的解决方法。就直接用了翔翔发给我的libsvm.dll。将相关链接中的“用vs2013运行过的libsvm.dll”下载好直接放在C:\Windows\System32下即可。
    Tips:或者在Anaconda离线包的链接中下载,按照“林智仁LIBSVM python包的安装与使用”进行操作。当时在页面不能直接找到VS的Prompt快捷方式,打开D:\develop\Visual Studio\Common7\Tools\Shortcuts中的VS2013 x64 本机工具命令提示进行nmake操作。
  2. 直接将libsvm文件夹中python下的 svmutil.py和svm.py两个文件复制粘贴到D:\develop\Anaconda\Lib下

  3. 在python环境下测试是否安装成功
    (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)
    

libsvm使用方法-非常简易版本

  • svm_train函数
    这里用的是彭亮视频中的例子
    from svmutil import *
    x = [[1,1], [2,0], [2,3]]
    y = [0, 0, 1]
    clf = svm_train(y, x, '-s 0 -t 0')
    
  • 相关参数解释说明
    x是特征向量
    (在这里,x必须是list或者是tuple,因为svm_train函数第二个参数传入时限定了,如果不是的话,会有报错)
    y是特征向量对应的标记
    clf是分类器
    ‘-s 0 -t 0’是option,详情请见LIBSVM详细介绍和使用方法
  • svm_predict函数
    from svutil import *
    x = [[1,1], [2,0], [2,3]]
    y = [0, 0, 1]
    x1 = [[1,1], [2,0]]
    y1 = [0, 1]
    svm_predict(y1, x1, clf)
    

相关链接


林智仁LIBSVM python包的安装与使用
Anaconda离线包
LIBSVM详细介绍和使用方法
用vs2013运行过的libsvm.dll 密码:aiu7
libsvm-3.22 离线包 密码:gbpl