| MATLAB File Help: cv.SVM | Index |
Support Vector Machines
Originally, support vector machines (SVM) was a technique for building an optimal binary (2-class) classifier. Later the technique was extended to regression and clustering problems. SVM is a partial case of kernel-based methods. It maps feature vectors into a higher-dimensional space using a kernel function and builds an optimal linear discriminating function in this space or an optimal hyper-plane that fits into the training data. In case of SVM, the kernel is not defined explicitly. Instead, a distance between any 2 points in the hyper-space needs to be defined.
The solution is optimal, which means that the margin between the separating hyper-plane and the nearest feature vectors from both classes (in case of 2-class classifier) is maximal. The feature vectors that are the closest to the hyper-plane are called support vectors, which means that the position of other vectors does not affect the hyper-plane (the decision function).
SVM implementation in OpenCV is based on [LibSVM].
cv.SVM implements the "one-against-one" approach for multi-class
classification. If N is the number of classes, then N*(N-1)/2
classifiers are constructed, each one trained with data from two classes
for every pair of distinct classes (N choose 2).
[LibSVM]:
C.-C. Chang and C.-J. Lin. "LIBSVM: a library for support vector machines", ACM Transactions on Intelligent Systems and Technology, 2:27:1-27:27, 2011. (http://www.csie.ntu.edu.tw/~cjlin/papers/libsvm.pdf)
[Burges98]:
C. Burges. "A tutorial on support vector machines for pattern recognition", Knowledge Discovery and Data Mining 2(2), 1998 (http://citeseer.ist.psu.edu/burges98tutorial.html)
| Superclasses | handle |
| Sealed | false |
| Construct on load | false |
| SVM | Creates/trains a new SVM instance |
| C | Parameter `C` of a SVM optimization problem. |
| ClassWeights | Optional weights in the 'C_SVC' problem, assigned to particular |
| Coef0 | Parameter `coef0` of a kernel function. |
| Degree | Parameter `degree` of a kernel function. |
| Gamma | Parameter `gamma` of a kernel function. |
| KernelType | Type of a SVM kernel. |
| Nu | Parameter `nu` of a SVM optimization problem. |
| P | arameter `epsilon` of a SVM optimization problem. |
| TermCriteria | Termination criteria. |
| Type | of a SVM formulation. |
| id | Object ID |
| addlistener | Add listener for event. | |
| calcError | Computes error on the training or test dataset | |
| clear | Clears the algorithm state | |
| delete | Destructor | |
| empty | Returns true if the algorithm is empty | |
| eq | == (EQ) Test handle equality. | |
| findobj | Find objects matching specified conditions. | |
| findprop | Find property of MATLAB handle object. | |
| ge | >= (GE) Greater than or equal relation for handles. | |
| getDecisionFunction | Retrieves the decision function | |
| getDefaultName | Returns the algorithm string identifier | |
| getSupportVectors | Retrieves all the support vectors | |
| getUncompressedSupportVectors | Retrieves all the uncompressed support vectors of a linear SVM | |
| getVarCount | Returns the number of variables in training samples | |
| gt | > (GT) Greater than relation for handles. | |
| isClassifier | Returns true if the model is a classifier | |
| isTrained | Returns true if the model is trained | |
| Sealed | isvalid | Test handle validity. |
| le | <= (LE) Less than or equal relation for handles. | |
| load | Loads algorithm from a file or a string | |
| lt | < (LT) Less than relation for handles. | |
| ne | ~= (NE) Not equal relation for handles. | |
| notify | Notify listeners of event. | |
| predict | Predicts response(s) for the provided sample(s) | |
| save | Saves the algorithm parameters to a file or a string | |
| setCustomKernel | Initialize with custom kernel | |
| train | Trains the statistical model | |
| trainAuto | Trains an SVM with optimal parameters |