Developer Guide for Intel® Data Analytics Acceleration Library 2016 Update 4
Given n feature vectors x1=(x11,…,x1p),..., xn=(xn1,…,xnp) of size p, the number of classes K, and a vector of class labels y=(y1,…,yn), where yi ∈ {0, 1 ,... ,K-1}, the problem is to build a multi-class classifier using a two-class (binary) classifier, such as a two-class SVM.
The model is trained with the One-Against-One method that uses the binary classification described in [Hsu02] as follows (for more references, see the Bibliography in [Hsu02]):
For each pair of classes (i, j), train a binary classifier, such as SVM. The total number of such binary classifiers is K(K-1)/2.
If the binary classifier predicts the feature vector to be in i-th class, the number of votes for the class i is increased by one, otherwise the vote is given to the j-th class. If two classes have equal numbers of votes, the class with the smallest index is selected.
Given a new feature vector xi, the classifier determines the class to which the vector belongs according to the algorithm 2 for computation of the class probabilities described in [Wu04]. The library returns the index of the class with the largest probability.