.Net Support Vector Machine v0.2

NSvm Namespace

The .Net Support Vector Machines library provides a small yet flexible soft-margin SVM implementation.

Warning: due to NDoc limited generics handling, the generic classes have been excluded from this documentation. This issue should be resolved once generics will be properly handled by NDoc.

On top of the NSvm design lies the generic abstract class SvmBase`1 that incorporates the Sequential Minimization Optimization (SMO) algorithm (see the method RunSmo). The second generic abstract class is LinearSvmBase`1 (that implements the method TakeStepPrimal a linear-specific performance tuning of the base SMO algorithm). In order to implement a concrete SVM class derived from those base classes, the developper must specify the kernel through the implemention of the method KernelOf.

Below those two generic abstract classes lies several SVM concrete classes such as LinearSvm, SparseLinearSvm and SparseBinaryLinearSvm. Those classes are shipped with ad hoc IO methods to read common file format (such as LibSVM file format). The generic class NonlinearSvm`1 takes an arbitrary kernel as a parameter (see the generic interface IKernel`1) to execute the SMO algorithm.

Author: Joannes Vermorel

Namespace hierarchy


LinearSvmDense linear Support Vector Machine.
SparseBinaryLinearSvmSparse Binary Support Vector Machine.
SparseLinearSvmSparse Linear Support Vector Machine.