Version 3.11 released on November 5, 2011
The parameter selection tool grid.py generates the following contour of cross-validation accuracy. To use this tool, you also need to install python and gnuplot
LIBSVM provides a simple interface where users can easily link it with their own programs. Main features of LIBSVM include
- Different SVM formulations
- Efficient multi-class classification
- Cross validation for model selection
- Probability estimates
- Various kernels (including precomputed kernel matrix)
- Weighted SVM for unbalanced data
- Both C++ and Java sources
- GUI demonstrating SVM classification and regression
- Python, R, MATLAB, Perl, Ruby, Weka, Common LISP, CLISP, Haskell, LabVIEW, and PHP interfaces. C# .NET code and CUDA extension is available.
- It's also included in some data mining environments: RapidMiner and PCP.
- Automatic model selection which can generate contour of cross valiation accuracy.
The current release (Version 3.11, November 2011) of LIBSVM can be obtained by downloading the zip file or tar.gz file. Please e-mail us if you have problems to download the file.
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.
Please read the COPYRIGHT notice before using LIBSVM.
Here is a simple applet demonstrating SVM classification and regression.
Click on the drawing area and use ``Change'' to change class of data. Then use ``Run'' to see the results.
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/num_features) -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.To install this tool, please read the README file in the package. There are Windows, X, and Java versions in the package.
Frequently Asked Questions (FAQ)
References of LIBSVM:
- Official implementation document:
C.-C. Chang and C.-J. Lin. LIBSVM : a library for support vector machines. ACM Transactions on Intelligent Systems and Technology, 2:27:1--27:27, 2011.
pdf, ps.gz, ACM digital lib.
- Instructions for using LIBSVM are in the README files in the main directory and some sub-directories.
- A guide for beginners:
C.-W. Hsu, C.-C. Chang, C.-J. Lin. A practical guide to support vector classification
- An introductory video for windows users.
- Other implementation documents:
R.-E. Fan, P.-H. Chen, and C.-J. Lin. Working set selection using the second order information for training SVM. Journal of Machine Learning Research 6, 1889-1918, 2005. You can also find a pseudo code there.
- Other documents written by users. (including some non-English documents)