Как настроить LIBSVM для Python

Я построил libsvm на Mac OS X с Make.

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

может кто-нибудь сказать мне, как установить это? В python readme для libsvm единственное описание

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 ответов


вместо того, чтобы проходить через libsvm для доступа к нему с помощью Python (я установил libsvm через MacPorts и import svmutil fails), вы можете установить популярный scikit-learn пакет, который содержит оптимизированную версию libsvm с привязками Python.

установка очень проста с MacPorts: sudo port install py27-scikit-learn (adapt py27 к любой версии Python, которую вы используете).


похоже на старую нить. Надеюсь, это поможет кому-то еще в будущем.

у меня была та же проблема. Решение

  1. Run make в каталоге libsvm-3.0
  2. Run make в каталоге libsvm-3.0/python

Если вы сделали только в папке libsvm-3.0, вы столкнетесь с этой проблемой. Сделайте это в обеих папках. Тогда все будет хорошо.


Если вам нужно решение не для MacPorts, см. эту страницу (особенно комментарий от Thanassis):

установка libsvm-3.0 для Python на OSX 10.6

несмотря на название поста, решение работало для меня на машине CentOS с python 2.7.


find_library в python просматривает только файлы с расширением .Итак. Для того, чтобы это работало правильно, вам нужно создать libsvm.Итак:

% ln-s libsvm.Итак.2 libsvm.так что

затем повторите попытку, она будет работать правильно.


вам не нужно использовать scikit learn для использования libSVM. У меня была такая же проблема при загрузке libsvm модули через python. Я клонировал проект из github и запускал его из командной строки с помощью make, и после установки среды я получил ту же ошибку.

я исправил проблему, установив libSVM через homebrew:

brew install libsvm

это не включает конкретные двоичные файлы python, поэтому вам все равно придется клонировать и делать из github и настроить среду.


вы должны войти в /python и сделать для генерации .Итак.1 файл


вы можете также попробовать использовать доморощенного установить libsvm как заварить установить libsvm,а затем вы можете открыть файл проекта и скопировать 'svmutil.py и svm.py файлы для проекта floder,то вы можете использовать команду 'от svmutil импорт *',и, возможно, все будет хорошо.