**SVM light**

**Support Vector Machine**

Author: thorsten>

Cornell University

Department of Computer Science

Developed at:

University of Dortmund, Informatik, AI-Unit

Collaborative Research Center on ‘Complexity Reduction in Multivariate Data’ (SFB475)

Version: 6.02

Date: 14.08.2008

**Overview**

SVM*light* is an implementation of Support Vector Machines (SVMs) in C. The main features of the program are the following:

- fast optimization algorithm

- working set selection based on steepest feasible descent
- "shrinking" heuristic
- caching of kernel evaluations
- use of folding in the linear case

- solves classification and regression problems. For multivariate and structured outputs use SVM
*struct*. - solves ranking problems (e. g. learning retrieval functions in
*STRIVER*search engine). - computes XiAlpha-estimates of the error rate, the precision, and the recall
- efficiently computes Leave-One-Out estimates of the error rate, the precision, and the recall
- includes algorithm for approximately training large transductive SVMs (TSVMs) (see also Spectral Graph Transducer)
- can train SVMs with cost models and example dependent costs
- allows restarts from specified vector of dual variables
- handles many thousands of support vectors
- handles several hundred-thousands of training examples
- supports standard kernel functions and lets you define your own
- uses sparse vector representation

http://www.cs.cornell.edu/People/tj/images/new.gifMachine Learning Course: If you would like to learn more about Machine Learning, you can find videos, slides, and readings of the course I teach at Cornell here.

http://www.cs.cornell.edu/People/tj/images/new.gifSVM*struct*: SVM learning for multivariate and structured outputs like trees, sequences, and sets (available here).

http://www.cs.cornell.edu/People/tj/images/new.gifSVM*perf*: New training algorithm for linear classification SVMs that can be much faster than SVM*light* for large datasets. It also lets you directly optimize multivariate performance measures like F1-Score, ROC-Area, and the Precision/Recall Break-Even Point. (available here).

http://www.cs.cornell.edu/People/tj/images/new.gifSVM*rank*: New algorithm for training Ranking SVMs that is much faster than SVM*light* in ‘-z p’ mode. (available here).

**Description**

SVM*light* is an implementation of Vapnik’s Support Vector Machine [__Vapnik, 1995__] for the problem of pattern recognition, for the problem of regression, and for the problem of learning a ranking function. The optimization algorithms used in SVM*light* are described in [__Joachims, 2002a__ ]. [__Joachims, 1999a__]. The algorithm has scalable memory requirements and can handle problems with many thousands of support vectors efficiently.

The software also provides methods for assessing the generalization performance efficiently. It includes two efficient estimation methods for both error rate and precision/recall. XiAlpha-estimates [__Joachims,
2002a__,

__Joachims, 2000b__] can be computed at essentially no computational expense, but they are conservatively biased. Almost unbiased estimates provides leave-one-out testing. SVM

*light*exploits that the results of most leave-one-outs (often more than 99%) are predetermined and need not be computed [

__Joachims,__

2002a].

2002a

New in this version is an algorithm for learning ranking functions [__Joachims, 2002c__]. The goal is to learn a function from preference examples, so that it orders a new set of objects as accurately as possible. Such ranking problems naturally occur in applications like search engines and recommender systems.

Futhermore, this version includes an algorithm for training large-scale transductive SVMs. The algorithm proceeds by solving a sequence of optimization problems lower-bounding the solution using a form of local search. A detailed description of the algorithm can be found in [__Joachims, 1999c__]. A similar transductive learner, which can be thought of as a transductive version of k-Nearest Neighbor is the Spectral Graph Transducer.

SVM*light* can also train SVMs with cost models (see [__Morik et al., 1999__]).

The code has been used on a large range of problems, including text classification [__Joachims, 1999c__][__Joachims,
1998a__], image recognition tasks, bioinformatics and medical applications. Many tasks have the property of sparse instance vectors. This implementation makes use of this property which leads to a very compact and efficient representation.