关闭

LibSVM3.21使用笔记----for python3.4 配置

标签: pythonlibsvm3.21
850人阅读 评论(0) 收藏 举报
分类:

    需要使用SVM做一个文本分类的项目,因此决定使用libsvm3.21,在win64上训练模型,android上做prediction分类,此文是为下次配置指导,防止本机doc丢失。

    本机环境: win10 64bit, python3.4, libsvm3.21 (http://www.csie.ntu.edu.tw/~cjlin/)

    android libsvm:  https://github.com/yctung/AndroidLibSvm 

   

  1. 安装python  (使用python3.4)

  2. 运行“cmd”,直接输入python,查看python32位还是64

    (2.1)  python32位的,则在libsvm-3.21文件夹下的windows文件夹中找到动态链接库libsvm.dll,将其添加到系统目录,如`C:\WINDOWS\system32\’,即可在python中使用libsvm

     

    (2.2)  python64位的,则需要首先自己编译64位的动态链接库libsvm.dll。方法如下:

    在程序列表中的Microsoft Visual Studio 2012/Visual Studio Tools下打开VS2012 x64Cross ToolsCommand Prompt,注意一定要是64位的command prompt

    (此时,可能会遇到一个error:"ERROR Cannot determine the location of the VS CommonTools Folder    " 若是win7 64位系统,安装的是VS2012,解决此问题的方法是:在计算机环境变量中变量PATH添加c:\windows\system32,本人win10 64没有遇到此问题)

     

  3. DosLIBSVM所在文件夹libsvm-3.21

    输入nmake -f Makefile.win clean all

    这时libsvm-3.21 windows目录下将生成64位的动态链接库。将新生成的libsvm.dll复制到系统目录(例如`C:\WINDOWS\system32\')即可。

     

  4. 测试

    打开IDLE

    >>> from sys import path

    >>> path.append('D:\LIBSVM\libsvm-3.21\python')

    >>> 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)

  5. Accuracy = 84.2857% (59/70)(classification)

    搞定...

  6. Notes: svm_predict(datalabel, dataset, model)中datalabel and dataset至少得是list类型,不能是单值,因此如果是单个值的,需要转为matrix,例如对单个值x, y,应写成 svm_predict([y], [x], model)




0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:9652次
    • 积分:193
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论