Skip to content
nickgillian edited this page Aug 14, 2016 · 3 revisions

#Support Vector Machines (SVM)

##Description The Support Vector Machine (SVM) classifier is a powerful classifier that works well on a wide range of classification problems, particularly on more complex problems that other classifiers (such as the KNN, GMM or ANBC algorithms) fail to solve.

The SVM class provides a front end to the LIBSVM library.

The SVM algorithm is part of the GRT classification modules.

##Advantages The Support Vector Machine (SVM) classifier is a powerful classifier that works well on a wide range of classification problems, even problems in high dimensions and that are not linearly separable.

##Disadvantages The main disadvantage of the SVM algorithm is that it has several key parameters that need to be set correctly to achieve the best classification results for any given problem. Parameters that may result in an excellent classification accuracy for problem A, may result in a poor classification accuracy for problem B. The user may, therefore, have to experiment with a number of different parameter settings in order to achieve a satisfactory result.

The main parameters that the user should experiment with are the SVM kernel type (which can be set by the setKernelType(UINT kernelType) method), the SVM type (which can be set by the setSVMType(UINT svmType) method), and the kernel-specific parameters (such as gamma, degree, nu, etc.).

##Training Data Format You should use the ClassificationData data structure to train the SVM classifier.

##Example Code SVM Example