.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
|LinearSvm||Dense linear Support Vector Machine.|
|SparseBinaryLinearSvm||Sparse Binary Support Vector Machine.|
|SparseLinearSvm||Sparse Linear Support Vector Machine.|