---
name: "svm-train"
section: "1"
platform: "linux"
package: "libsvm-tools"
version: "3.24+ds-6.1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/svm-train"
---

# svm-train(1)

train one or more SVM instance(s) on a given data set to produce a model file

## NAME

svm-train - train one or more SVM instance(s) on a given data set to produce a model file

## SYNOPSIS

**svm-train \[-s** *svm\_type* **\] \[ -t** *kernel\_type* **\] \[ -d** *degree* **\] \[ -g** *gamma* **\] \[ -r** *coef0* **\] \[ -c** *cost* **\] \[ -n** *nu* **\] \[ -p** *epsilon* **\] \[ -m** *cachesize* **\] \[ -e** *epsilon* **\] \[ -h** *shrinking* **\] \[ -b** *probability\_estimates \]* **\] \[ -wi** *weight* **\] \[ -v** *n* **\] \[ -q \]**

*training\_set\_file \[ model\_file \]*

## DESCRIPTION

**svm-train** trains a Support Vector Machine to learn the data indicated in the *training\_set\_file*\
  and produce a *model\_file*\
  to save the results of the learning optimization.  This model can be used later with **svm\_predict**(1) or other LIBSVM enabled software.

## OPTIONS

- \-s svm\_type

  svm\_type defaults to 0 and can be any value between 0 and 4 as follows:

- **0**

  \-- *C-SVC*

- **1**

  \-- *nu-SVC*

- **2**

  \-- *one-class SVM*

- **3**

  \-- *epsilon-SVR*

- **4**

  \-- *nu-SVR*

- \-t kernel\_type

  kernel\_type defaults to 2 (Radial Basis Function (RBF) kernel) and can be any value between 0 and 4 as follows:

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

- **4**

  \-- *precomputed kernel (kernel values in training\_set\_file)* --

- \-d degree

  Sets the *degree* of the kernel function, defaulting to 3

- \-g gamma

  Adjusts the *gamma* in the kernel function (default 1/k)

- \-r coef0

  Sets the *coef0* (constant offset) in the kernel function (default 0)

- \-c cost

  Sets the parameter C ( *cost* ) of C-SVC, epsilon-SVR, and nu-SVR (default 1)

- \-n nu

  Sets the parameter  *nu* of nu-SVC, one-class SVM, and nu-SVR (default 0.5)

- \-p epsilon

  Set the *epsilon* in the loss function of epsilon-SVR (default 0.1)

- \-m cachesize

  Set the cache memory size to *cachesize* in MB (default 100)

- \-e epsilon

  Set the tolerance of termination criterion to *epsilon* (default 0.001)

- \-h shrinking

  Whether to use the *shrinking*\
    heuristics, 0 or 1 (default 1)

- \-b probability-estimates

  *probability\_estimates* is a binary value indicating whether to calculate probability estimates when training the SVC or SVR model.  Values are 0 or 1 and defaults to 0 for speed.

- \-wi weight

  Set the parameter C (cost) of class *i* to weight\*C, for C-SVC (default 1)

- \-v n

  Set *n* for *n* -fold cross validation mode

- \-q

  quiet mode; suppress messages to stdout.

## FILES

*training\_set\_file* must be prepared in the following simple sparse training vector format:

- \<label\> \<index1\>:\<value1\> \<index2\>:\<value2\> . . .

  - .

  - .

  - .

  - There is one sample per line. Each sample consists of a target value (label or regression target) followed by a sparse representation of the input vector. All unmentioned coordinates are assumed to be 0. For classification, \<label\> is an integer indicating the class label (multi-class is supported). For regression, \<label\> is the target value which can be any real number. For one-class SVM, it's not used so can be any number. Except using precomputed kernels (explained in another section), \<index\>:\<value\> gives a feature (attribute) value. \<index\> is an integer starting from 1 and \<value\> is a real number. Indices must be in an ASCENDING order.

  ## ENVIRONMENT

No environment variables.

## DIAGNOSTICS

None documented; see Vapnik et al.

## BUGS

Please report bugs to the Debian BTS.

## AUTHOR

Chih-Chung Chang, Chih-Jen Lin \<cjlin@csie.ntu.edu.tw\>, Chen-Tse Tsai \<ctse.tsai@gmail.com\> (packaging)

## SEE ALSO

[**svm-predict**(1)](/svm-predict/1.md), [**svm-scale**(1)](/svm-scale/1.md)
