NAME

SMO -- trains Support Vector Machine for binary classification

PROTOTYPE

unitptr SMO( int iSVDim, int iKernelParameters, int iKerneltype, int iSpeedUp, int iKernelCached, unitptr uHost)

ARGUMENTS

int iSVDim
dimension of data
int iKernelParameters
number of kernel parameters
int iKerneltype
kernel type (rbf, polynomial, nnet, linear, generic)
int iSpeedUp
optimize classification function after training (bool)
int iKernelCached
store whole kernel matrix in memory during training (bool)
unitptr uHost
host unit

RETURN VALUE:

A pointer to the created unit or NULL in the case of an error.

DESCRIPTION:

The SMO circuit implements a Support Vector Machine (only binary classification is implemented currently). For using the circuit, choose the dimension of the data and the type of the kernel function. Afterwards, set epsilon (tolerance value for fulfillment of Karush-Kuhn-Tucker conditions, e.g. epsilon = 0.001) and the regularization parameter C (controls the capacity or complexity of the solution by limiting the value of each lagrange coefficient). The training of the SVM (initiated by the 'train' unit) can be accelerated by storing the kernel matrix in memory (be sure you have enough memory!). The execution of the discrimination function found by the SVM can be speed-up by selecting 'iSpeed-Up=1' (specially if the solution is sparse).

LITERATURE POINTERS (SVM):

"A Tutorial on Support Vector Machines for Pattern Recognition", C.J.C. Burges, Knowledge Discovery and Data Mining, Vol. 2, No. 2, 1998. br

LITERATURE POINTERS (SMO):

"Fast Training of Support Vector Machines using Sequential Minimal Optimization", J. Platt, in "Advances in Kernel-Methods -- Support Vector Learning", Editors: B. Schölkopf, C.J.C. Burges and A.J. Smola, Cambridge, MIT-Press, pp. 185-208, 1999.

FILE

nst_svm.C