如何为Python设置LIBSVM

时间:2013-04-02 02:34:52

标签: python svm libsvm

我在Mac OS X上使用Make。

构建了libsvm
$ tar xzfv libsvm-3.17.tar.gz
$ cd libsvm-3.17
$ make

这构建了各种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

我还在/usr/local

中与此相关联
$ ls -la /usr/local/
...
svm -> /usr/local/libsvm-3.17/

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

import sys
sys.path.append('/usr/local/svm/python')

但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.

谁能告诉我如何设置它?在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.

我错过了什么?

7 个答案:

答案 0 :(得分:9)

为了使用Python访问它而不是通过libsvm(我通过MacPorts安装了libsvm,import svmutil失败了),您可能需要安装流行的scikit-learn包,其中包含优化版本libsvm with Python bindings

使用MacPorts安装非常简单:sudo port install py27-scikit-learn(将py27修改为您使用的任何Python版本。)

答案 1 :(得分:3)

似乎是一个旧线程。希望将来帮助其他人。

我遇到了同样的问题。解决方案是

  1. 在libsvm-3.0目录中运行make
  2. 在libsvm-3.0 / python目录中运行make
  3. 如果您只在libsvm-3.0文件夹中执行此操作,则会遇到此问题。在两个文件夹中执行此操作。然后它会正常工作。

答案 2 :(得分:2)

如果您需要非MacPorts解决方案,请参阅此页面(尤其是Thanassis的评论):

Installing libsvm-3.0 for Python on OSX 10.6

尽管有帖子的标题,但该解决方案适用于使用python 2.7的CentOS机器。

答案 3 :(得分:2)

python中的

find_library只查看扩展名为.so的文件。为了使其正常工作,您需要创建一个libsvm.so:

%ln -s libsvm.so.2 libsvm.so

然后再试一次,它会正常工作。

答案 4 :(得分:1)

您不需要使用scikit learn来使用libSVM。通过python加载libsvm模块时遇到了同样的问题。我从github克隆了这个项目,然后用make从命令行运行构建它,在设置环境之后,我得到了同样的错误。

我通过homebrew安装libSVM解决了这个问题:

brew install libsvm

这不包括python特定的二进制文件,因此你仍然需要克隆并从github创建并设置环境。

答案 5 :(得分:0)

你应该进入/ python并生成.so.1文件

答案 6 :(得分:0)

您也可以尝试使用自制软件来安装libsvm,如'brew install libsvm',然后您可以打开项目文件并将'svmutil.py'和'svm.py'文件复制到项目文件夹中,然后你可以使用命令'from svmutil import *',也许它可以。