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