Find file
Fetching contributors…
Cannot retrieve contributors at this time
61 lines (46 sloc) 1.9 KB



This is the Ruby port of the LIBSVM Python SWIG (Simplified Wrapper and Interface Generator) interface.

A slightly modified version of LIBSVM 2.9 is included, it allows turrning on/off the debug log. You don't need your own copy of SWIG to use this library - all needed files are generated using SWIG already.

Look for the README file in the ruby subdirectory for instructions. The binaries included were built under Ubuntu Linux 2.6.28-18-generic x86_64, you should run make under the libsvm-2.9 and libsvm-2.9/ruby directories to regenerate the executables for your environment.

LIBSVM is in use at - A Twitter / Tweet sentiment analysis application


Currently the gem is available on linux only(tested on Ubuntu 8-9 and Fedora 9-12, and on OS X by danielsdeleo), and you will need g++ installed to compile the native code.

sudo gem sources -a   (you only have to do this once)
sudo gem install tomz-libsvm-ruby-swig


Quick Interactive Tutorial using irb (adopted from the python code from Toby Segaran's “Programming Collective Intelligence” book):

irb(main):001:0> require 'svm'
=> true
irb(main):002:0> prob =[1,-1],[[1,0,1],[-1,0,-1]])
irb(main):003:0> param = => LINEAR, :C => 10)
irb(main):004:0> m =,param)
irb(main):005:0> m.predict([1,1,1])
=> 1.0
irb(main):006:0> m.predict([0,0,1])
=> 1.0
irb(main):007:0> m.predict([0,0,-1])
=> -1.0
irb(main):009:0> m2 ="test.model")
irb(main):010:0> m2.predict([0,0,-1])
=> -1.0


Tom Zeng