LIBSVM -- A Library for Support Vector Machines--转

原文地址:http://www.csie.ntu.edu.tw/~cjlin/libsvm/index.html

 

Chih-Chung Chang and Chih-Jen Lin



 Version 3.21 released on December 14, 2015. It conducts some minor fixes. 
 LIBSVM tools provides many extensions of LIBSVM. Please check it if you need some functions not supported in LIBSVM. 
 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) 
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.

 

To see the importance of parameter selection, please see our guide for beginners. 
 Using libsvm, our group is the winner of IJCNN 2001 Challenge (two of the three competitions), EUNITE world wide competition on electricity load prediction, NIPS 2003 feature selection challenge (third place), WCCI 2008 Causation and Prediction challenge (one of the two winners), and Active Learning Challenge 2010 (2nd place).


Introduction

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

  • 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
  • PythonRMATLABPerlRubyWekaCommon LISPCLISPHaskellOCamlLabVIEW, and PHP interfaces. C# .NET code and CUDA extension is available. 
    It's also included in some data mining environments: RapidMinerPCP, and LIONsolver.
  • Automatic model selection which can generate contour of cross validation accuracy.

Download LIBSVM

The current release (Version 3.21, December 2015) of LIBSVM can be obtained by downloading the zip file or tar.gz file. You can also check this github directory. 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 sub-directory in the zip file containing binary executable files. Precompiled Java class archive is also included.

Please read the COPYRIGHT notice before using LIBSVM


Graphic Interface

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.


Change Run Clear 

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


Additional Information (how to cite LIBSVM)

Frequently Asked Questions (FAQ) and Change log

References of LIBSVM:

For more information about nu-SVM and one-class SVM , please see

  • B. Schölkopf, A. Smola, R. Williamson, and P. L. Bartlett. New support vector algorithms. Neural Computation, 12, 2000, 1207-1245.
  • B. Schölkopf, J. Platt, J. Shawe-Taylor, A. J. Smola, and R. C. Williamson. Estimating the support of a high-dimensional distribution. Neural Computation, 13, 2001, 1443-1471.

Interfaces and extensions to LIBSVM

LanguageDescriptionMaintainers and Their AffiliationSupported LIBSVM versionLink
JavaJava code close to LIBSVM C code.LIBSVM authors at National Taiwan University.The latestIncluded inLIBSVM package
JavaRefactored Java code for faster training/testing.David Soergel at University of California, Berkeley.2.88jlibsvm
MATLAB and OCTAVEA simple MATLAB and OCTAVE interfaceLIBSVM authors at National Taiwan University.The latestIncluded inLIBSVM package
MATLABAn old version (no longer available)Junshui Ma and Stanley Ahalt at Ohio State University2.33Dead Link
RPlease 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)3.17WWW
PythonA python interface has been included in LIBSVM since version 2.33.Initiated by Carl Staelin at HP Labs. Updated/maintained by LIBSVM authors.The latestIncluded inLIBSVM package
Python and C#Interfaces provided in the framework pcSVMUwe Schmitt from Germany2.71pcSVM
Perl Matthew Laird at Simon Fraser University, Canada and Saul Rosa3.12perl-libsvm
RubyRuby language bindings for LIBSVMC. Florian Ebeling and Rimas Silkaitis3.18rb-libsvm
RubyA Ruby interface via SWIGTom Zeng2.9libsvm-ruby-swig
Weka Yasser EL-Manzalawy and Vasant Honavar at Iowa State University.2.8WLSVM
Node.js Nicolas Panel3.18Node.js interface
Scilab Holger Nahrstaedt from the Technical University of Berlin3.11Scilab interface
Common LISPCommon Lisp wrapper of LIBSVMGábor Melis2.88Common LISP wrapper
CLISPAn FFI-based interface distributed with CLISPSam Steingold2.9CLISP LibSVM module
HaskellA Haskell binding to LIBSVMPaulo Tanimoto3.1Haskell binding
OCamlA OCaml binding to LIBSVMOliver Gu3.16OCaml binding
NimrodLIBSVM Wrapper for NimrodAndreas Rumpf3.12libsvm wrapper
.NETLIBSVM for .NETNicolas Panel3.17libsvm-net
.NET.NET conversion of LIBSVMMatthew Johnson2.89SVM.NET
CUDALIBSVM Accelerated with GPU using the CUDA FrameworkA. Athanasopoulos, A. Dimou, V. Mezaris, and I. Kompatsiaris at CERTH-ITI3.0MKLAB
CellLIBSVM Accelerated using Cell ProcessorsMoreno Marzolla at University of Bologna, Italy2.89libsvm_CBE
LabviewLabView interface to LIBSVM. Both Windows/Linux are supported.Oystein Sture3.20LabView interface
C#C# wrapper of libsvmCan Erhan3.20github directory
PHPLIBSVM binding for PHPIan BarberThe latest (LIBSVM must be installed first)PHP binding
AndroidLIBSVM on AndroidYu-Chih Tung at Univ of Michigan3.20LIBSVM on Androis

 


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.

转载于:https://www.cnblogs.com/davidwang456/articles/5586277.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值