科学网

 找回密码
  注册
搜索
查看: 159|回复: 0

臺灣大學資訊工程學系官网的“支持向量机”(LIBSVM)软件库

[复制链接]
发表于 2017-11-6 21:10:33 | 显示全部楼层 |阅读模式
https://www.csie.ntu.edu.tw/~cjlin/libsvm/index.html
                                     LIBSVM -- A Library for Support Vector Machines

                                                           Chih-Chung Chang and Chih-Jen Lin

Version 3.22 released on December 22, 2016. 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
  • Python, R, MATLAB, Perl, Ruby, Weka, Common LISP, CLISP, Haskell, OCaml, LabVIEW, and PHP interfaces. C# .NET code and CUDA extension is available.
    It's also included in some data mining environments: RapidMiner, PCP, and LIONsolver.
  • Automatic model selection which can generate contour of cross validation accuracy.


Download LIBSVMThe current release (Version 3.22, December 2016) of LIBSVM can be obtained by downloading the [url=http://www.csie.ntu.edu.tw/~cjlin/cgi-bin/libsvm.cgi?+http://www.csie.ntu.edu.tw/~cjlin/libsvm+zip]zip file[/url]or [url=http://www.csie.ntu.edu.tw/~cjlin/cgi-bin/libsvm.cgi?+http://www.csie.ntu.edu.tw/~cjlin/libsvm+tar.gz]tar.gz[/url]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 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.
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 in LIBSVM 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 in LIBSVM 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 in LIBSVM 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
JuliaSVR in JuliaVelimir V Vesselinov3.22SVR in Julia
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.csie.ntu.edu.tw/~cjlin/libsvmtools/





回复

使用道具 举报

Archiver|手机版|科学网 ( 京ICP备14006957 )

GMT+8, 2017-11-19 03:18

Powered by ScienceNet.cn

Copyright © 2007-2017 中国科学报社

快速回复 返回顶部 返回列表