LIBSVM -- A Library for Support Vector MachinesChih-Chung Chang and Chih-Jen Lin![]() ![]() ![]() ![]() We now have an easy script (easy.py) for users who know NOTHING about svm. It makes everything automatic--from data scaling to parameter selection. 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.
![]() ![]() ![]() IntroductionLIBSVM 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: 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
Download LIBSVMThe current release (Version 2.84, April 2007) 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. 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. Graphic InterfaceHere 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. Examples of options: -s 0 -c 10 -t 1 -g 1 -r 1 -d 3 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. Additional Information (how to cite LIBSVM)Frequently Asked Questions (FAQ)References of LIBSVM:
Interfaces to LIBSVM
Acknowledgments: This work was supported in part by the National Science Council of Taiwan via the grant NSC 89-2213-E-002-106. The authors thank their group members and users for helpful discussion and comments. Please send comments and suggestions to Chih-Jen Lin. |
|