原文地址: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
  • 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 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-SVC1 -- nu-SVC2 -- one-class SVM3 -- epsilon-SVR4 -- nu-SVR
-t kernel_type : set type of kernel function (default 2)0 -- linear: u'*v1 -- polynomial: (gamma*u'*v + coef0)^degree2 -- 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:

  • 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)

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

Language Description Maintainers and Their Affiliation Supported LIBSVM version Link
Java Java code close to LIBSVM C code. LIBSVM authors at National Taiwan University. The latest Included inLIBSVM package
Java Refactored Java code for faster training/testing. David Soergel at University of California, Berkeley. 2.88 jlibsvm
MATLAB and OCTAVE A simple MATLAB and OCTAVE interface LIBSVM authors at National Taiwan University. The latest Included inLIBSVM package
MATLAB An old version (no longer available) Junshui Ma and Stanley Ahalt at Ohio State University 2.33 Dead Link
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) 3.17 WWW
Python A python interface has been included in LIBSVM since version 2.33. Initiated by Carl Staelin at HP Labs. Updated/maintained by LIBSVM authors. The latest Included inLIBSVM package
Python and C# Interfaces provided in the framework pcSVM Uwe Schmitt from Germany 2.71 pcSVM
Perl   Matthew Laird at Simon Fraser University, Canada and Saul Rosa 3.12 perl-libsvm
Ruby Ruby language bindings for LIBSVM C. Florian Ebeling and Rimas Silkaitis 3.18 rb-libsvm
Ruby A Ruby interface via SWIG Tom Zeng 2.9 libsvm-ruby-swig
Weka   Yasser EL-Manzalawy and Vasant Honavar at Iowa State University. 2.8 WLSVM
Node.js   Nicolas Panel 3.18 Node.js interface
Scilab   Holger Nahrstaedt from the Technical University of Berlin 3.11 Scilab interface
Common LISP Common Lisp wrapper of LIBSVM Gábor Melis 2.88 Common LISP wrapper
CLISP An FFI-based interface distributed with CLISP Sam Steingold 2.9 CLISP LibSVM module
Haskell A Haskell binding to LIBSVM Paulo Tanimoto 3.1 Haskell binding
OCaml A OCaml binding to LIBSVM Oliver Gu 3.16 OCaml binding
Nimrod LIBSVM Wrapper for Nimrod Andreas Rumpf 3.12 libsvm wrapper
.NET LIBSVM for .NET Nicolas Panel 3.17 libsvm-net
.NET .NET conversion of LIBSVM Matthew Johnson 2.89 SVM.NET
CUDA LIBSVM Accelerated with GPU using the CUDA Framework A. Athanasopoulos, A. Dimou, V. Mezaris, and I. Kompatsiaris at CERTH-ITI 3.0 MKLAB
Cell LIBSVM Accelerated using Cell Processors Moreno Marzolla at University of Bologna, Italy 2.89 libsvm_CBE
Labview LabView interface to LIBSVM. Both Windows/Linux are supported. Oystein Sture 3.20 LabView interface
C# C# wrapper of libsvm Can Erhan 3.20 github directory
PHP LIBSVM binding for PHP Ian Barber The latest (LIBSVM must be installed first) PHP binding
Android LIBSVM on Android Yu-Chih Tung at Univ of Michigan 3.20 LIBSVM 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

LIBSVM -- A Library for Support Vector Machines--转相关推荐

  1. OpenCV3.3中支持向量机(Support Vector Machines, SVM)实现简介及使用

    OpenCV 3.3中给出了支持向量机(Support Vector Machines)的实现,即cv::ml::SVM类,此类的声明在include/opencv2/ml.hpp文件中,实现在mod ...

  2. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 12—Support Vector Machines 支持向量机...

    Lecture 12 支持向量机 Support Vector Machines 12.1 优化目标 Optimization Objective 支持向量机(Support Vector Machi ...

  3. 论文阅读和分析:Hybrid Mathematical Symbol Recognition using Support Vector Machines

    HMER论文系列 1.论文阅读和分析:When Counting Meets HMER Counting-Aware Network for HMER_KPer_Yang的博客-CSDN博客 2.论文 ...

  4. Machine Learning week 7 quiz: Support Vector Machines

    Support Vector Machines 5 试题 1. Suppose you have trained an SVM classifier with a Gaussian kernel, a ...

  5. 初译 Support Vector Machines:A Simple Tutorial(一)

    <Support Vector Machines:A Simple Tutorial> 作者 Alexey Nefedov   (一)Introduction 在本章节中将会介绍一些用于定 ...

  6. Ex6_机器学习_吴恩达课程作业(Python):SVM支持向量机(Support Vector Machines)

    Ex6_机器学习_吴恩达课程作业(Python):SVM支持向量机(Support Vector Machines) 文章目录 Ex6_机器学习_吴恩达课程作业(Python):SVM支持向量机(Su ...

  7. Programming Exercise 6:Support Vector Machines

    大家好,我是Mac Jiang,今天和大家分享一下coursera网站上Stanford University的Machine Learning公开课(吴恩达老师)课程第六次作业:Programmin ...

  8. 机器学习之支持向量机: Support Vector Machines (SVM)

    机器学习之支持向量机: Support Vector Machines (SVM) 欢迎访问人工智能研究网 课程中心 网址是:http://i.youku.com/studyai 本篇博客介绍机器学习 ...

  9. Sequential Minimal Optimization: A Fast Algorithm for Training Support Vector Machines 论文研读

    摘要 本文提出了一种用于训练支持向量机的新算法:序列最小优化算法(SMO).训练支持向量机需要解决非常大的二次规划(QP)优化问题.SMO 将这个大的 QP 问题分解为一系列最小的 QP 问题.这些小 ...

最新文章

  1. 自然划分的3-4-5规则
  2. 一文看懂5G和AI融合的5个要点
  3. 关于如何在Nomad中保护工作部署的工作流的简要历史
  4. 字节跳动python面试_字节跳动的面试感受
  5. SQL 技巧-ORACLE
  6. php教程链接,php自动给网址加上链接的方法,php网址链接方法_PHP教程
  7. Opencv3编程入门学习笔记(二)之显式创建Mat对象
  8. matlab数据游标属性设置,将节点属性添加到图论图数据提示
  9. 关于ZooKeeper集群脑裂及其解决方案
  10. np.mean(data, axis=0)函数
  11. 在线协作编辑OT算法简介
  12. bootstrap的表单验证 vue_分享几个基于Vue的UI库和开源项目
  13. android某个界面横屏,iOS强制某个界面横屏的方法
  14. layabox使用初体验
  15. IT经理人:提高团队工作效率的11个方法
  16. 程序员常用 英语单词
  17. JS原创小游戏 旋转方块(源码)
  18. 电热毯UL964测试申请要求有哪些呢
  19. Java Version Mismatch
  20. 嵌入式linux备份flash,嵌入式Linux裸机开发(十一)——Nandflash

热门文章

  1. php基类是什么意思,php中的方法重写是什么意思?
  2. prometheus job 重复_分享一款开源的监控神器--Prometheus 简介、架构及相关概念
  3. 文本基线怎样去掉_ICML 2020 | 基于类别描述的文本分类模型
  4. risc-v 操作系统教程
  5. mongodb 初次查询慢 加载索引
  6. linux查找并删除文件
  7. python sin(x)/x 图像
  8. Python Elasticsearch 插入数据
  9. 六行代码安装 GPU版本的TensorFlow
  10. Leetcode 203. 移除链表元素 (每日一题 20210914)