Version 2.88 released on October 30, 2008.
We improve the gradient reconstructions in doing
shrinking.
We now have a nice page LIBSVM data sets providing problems in LIBSVM format.
A practical
guide to SVM classification
is available now! (mainly written for beginners)
libsvm tools
available now!

Using libsvm, our group is the winner
of
EUNITE
world wide
competition
on electricity load prediction
, December 2001. The technique used is the support vector
regression.
Using libsvm, our group is the winner
of
IJCNN
Challenge (two of the three competieions).
LIBSVM is an integrated software for support vector classification, (C-SVC, nu-SVC), regression (epsilon-SVR, nu-SVR) and distribution estimation (one-class SVM ). It supports multi-class classification.
Since version 2.8, it implements an SMO-type algorithm proposed
in this paper:
R.-E. Fan, P.-H. Chen, and C.-J. Lin.
Working set selection using second order information for training
SVM.
Journal of Machine Learning Research 6, 1889-1918, 2005. You can also find a pseudo code there.
(how to cite LIBSVM)
Our goal is to help users from other fields to easily use SVM as a tool. LIBSVM provides a simple interface where users can easily link it with their own programs. Main features of LIBSVM include
The package includes the source code of the library in C++ and Java, and a simple program for scaling training data. A README file with detailed explanation is provided. For MS Windows users, there is a subdirectory in the zip file containing binary executable files. Precompiled Java class archive is also included.
Please read the COPYRIGHT notice before using LIBSVM.
Examples of options: -s 0 -c 10 -t 1 -g 1 -r 1 -d 3
Classify a binary data with polynomial kernel (u'v+1)^3 and C = 10
options: -s svm_type : set type of SVM (default 0) 0 -- C-SVC 1 -- nu-SVC 2 -- one-class SVM 3 -- epsilon-SVR 4 -- nu-SVR -t kernel_type : set type of kernel function (default 2) 0 -- linear: u'*v 1 -- polynomial: (gamma*u'*v + coef0)^degree 2 -- radial basis function: exp(-gamma*|u-v|^2) 3 -- sigmoid: tanh(gamma*u'*v + coef0) -d degree : set degree in kernel function (default 3) -g gamma : set gamma in kernel function (default 1/k) -r coef0 : set coef0 in kernel function (default 0) -c cost : set the parameter C of C-SVC, epsilon-SVR, and nu-SVR (default 1) -n nu : set the parameter nu of nu-SVC, one-class SVM, and nu-SVR (default 0.5) -p epsilon : set the epsilon in loss function of epsilon-SVR (default 0.1) -m cachesize : set cache memory size in MB (default 100) -e epsilon : set tolerance of termination criterion (default 0.001) -h shrinking: whether to use the shrinking heuristics, 0 or 1 (default 1) -b probability_estimates: whether to train a SVC or SVR model for probability estimates, 0 or 1 (default 0) -wi weight: set the parameter C of class i to weight*C, for C-SVC (default 1) The k in the -g option means the number of attributes in the input data. option -v randomly splits the data into n parts and calculates cross validation accuracy/mean squared error on them.
To install this tool, please read the README file in the package. There
are Windows, X, and Java versions in the package.
References of LIBSVM:
| Language | Description | Maintainers and Their Affiliation | Supported LIBSVM version | Link |
|---|---|---|---|---|
| MATLAB | A simple MATLAB interface | LIBSVM authors at National Taiwan University. | 2.88 | Zip |
| MATLAB | An old version (no longer available) | Junshui Ma and Stanley Ahalt at Ohio State University | 2.33 | Dead Link |
| MATLAB | Another version. (libsvm 2.8 used, but multiclass and sparse input not supported yet) | Michael Vogt from Darmstadt University of Technology, Germany | 2.8 (partial) | WWW |
| R | Please install by typing install.packages('e1071') at R command line prompt. (document and examples). | David Meyer at the Wirtschaftsuniversität Wien (Vienna University of Economics and Business Administration) | 2.82 | WWW |
| Python | A python interface of LIBSVM has been included since version 2.33. | Initiated by Carl Staelin at HP Labs. Updated/maintained by LIBSVM authors. | The latest | Included in LIBSVM pacakge |
| Python and C# | Interfaces provided in the framework pcSVM | Uwe Schmitt from Germany | 2.71 | pcSVM |
| Perl | Matthew Laird at Simon Fraser University, Canada | 2.85 | CPAN | |
| Ruby | Rudi Cilibrasi at Centrum voor Wiskunde en Informatica (Dutch National Research Institute for Mathematics and Computer Science). | 2.84 | Ruby SVM | |
| Weka | Yasser EL-Manzalawy and Vasant Honavar at Iowa State University. | 2.8 | WLSVM | |
| Common LISP | Gábor Melis | 2.82-2.86 | Common LISP wrapper | |
| CLISP | An FFI-based interface distributed with CLISP | Sam Steingold | 2.86 | CLISP LibSVM module |
| .NET | .NET conversion of LIBSVM | Matthew Johnson | 2.84 | SVM.NET |
| Labview | Please download the llb file. A image demonstrating its use is here. Probability estimates are not supported. | Kiwoong Kim at Korea Research Institute of Standards and Science. | 2.71 | llb |
| C# | C# code converted from libsvm java version | Andrew Poh from Australia | 2.6 | zip |