如何为Python设置LIBSVM

Dav*_*ams 9 python svm libsvm

我使用Make在Mac OS X上构建了libsvm.

$ tar xzfv libsvm-3.17.tar.gz
$ cd libsvm-3.17
$ make
Run Code Online (Sandbox Code Playgroud)

这构建了各种libsvm二进制文件:

$ ls
COPYRIGHT           heart_scale svm-predict.c   svm-train.c tools
FAQ.html            java        svm-scale   svm.cpp     windows
Makefile            matlab      svm-scale.c svm.def
Makefile.win    python      svm-toy     svm.h
README      svm-predict svm-train   svm.o
Run Code Online (Sandbox Code Playgroud)

我还与此相关/usr/local:

$ ls -la /usr/local/
...
svm -> /usr/local/libsvm-3.17/
Run Code Online (Sandbox Code Playgroud)

并将Python绑定附加到我的路径:

import sys
sys.path.append('/usr/local/svm/python')
Run Code Online (Sandbox Code Playgroud)

但是Python绑定找不到"LIBSVM"库:

$ python test.py 
Traceback (most recent call last):
   File "test.py", line 8, in <module>
      import svmutil
   File "/usr/local/svm/python/svmutil.py", line 5, in <module>
      from svm import *
   File "/usr/local/svm/python/svm.py", line 22, in <module>
      raise Exception('LIBSVM library not found.')
Exception: LIBSVM library not found.
Run Code Online (Sandbox Code Playgroud)

谁能告诉我如何设置它?在libsvm的python自述文件中,唯一的描述是

Installation 
============

On Unix systems, type

> make

The interface needs only LIBSVM shared library, which is generated by
the above command. We assume that the shared library is on the LIBSVM
main directory or in the system path.
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

Eri*_*got 9

import svmutil您可能希望安装流行的scikit-learn软件包,其中包含带有Python绑定的优化版本的libsvm,而不是通过libsvm来使用Python访问它(我通过MacPorts安装了libsvm,并且失败了).

使用MacPorts安装非常简单:( sudo port install py27-scikit-learn适应py27您使用的任何Python版本).


Raj*_*aja 5

看起来像一个旧线程。希望它可以帮助其他人在未来。

我有同样的问题。解决办法是

  1. make在 libsvm-3.0 目录下运行
  2. 运行make在LIBSVM-3.0 /蟒蛇目录

如果您仅在 libsvm-3.0 文件夹中执行此操作,您将面临此问题。在两个文件夹中执行此操作。然后它会正常工作。