# Multiclass SVM¶

Crammer and Singer (2001) have extended the binary SVM classifier to classification problems with more than two classes. The training problem of the Crammer-Singer multiclass SVM can be expressed as a QP

(1)

with variable where is
the number of training examples and the number of
classes. The kernel matrix is given by
where is a kernel function and
is the i’th row of the data matrix
, and is an -vector with labels (*i.e.*
).

### Documentation

A custom solver for the multiclass support vector machine training
problem is available as a Python module `mcsvm`

. The module
implements the following function:

`mcsvm`

(X,labels,gamma,kernel = 'linear',sigma = 1.0,degree = 1)¶Solves the problem (1) using a custom KKT solver.

The input arguments are the data matrix (with the training examples as rows), the label vector , and the positive parameter .

Valid kernel functions are:

`'linear'`

- the linear kernel:
`'poly'`

- the polynomial kernel:
The kernel parameters and are specified using the input arguments sigma and degree, respectively.

Returns the function

`classifier()`

. If is then classifier(Y) returns a list with as its k’th elementwhere is row of , is row of , and is the optimal solution of the QP (1).