couple is used to link class-probability estimates produced by pairwise coupling in multi-class classification problems.

couple(probin, coupler = "minpair")

Arguments

probin

The pairwise coupled class-probability estimates

coupler

The type of coupler to use. Currently minpar and pkpd and vote are supported (see reference for more details). If vote is selected the returned value is a primitive estimate passed on given votes.

Details

As binary classification problems are much easier to solve many techniques exist to decompose multi-class classification problems into many binary classification problems (voting, error codes, etc.). Pairwise coupling (one against one) constructs a rule for discriminating between every pair of classes and then selecting the class with the most winning two-class decisions. By using Platt's probabilities output for SVM one can get a class probability for each of the \(k(k-1)/2\) models created in the pairwise classification. The couple method implements various techniques to combine these probabilities.

Value

A matrix with the resulting probability estimates.

References

Ting-Fan Wu, Chih-Jen Lin, ruby C. Weng
Probability Estimates for Multi-class Classification by Pairwise Coupling
Neural Information Processing Symposium 2003
https://papers.neurips.cc/paper/2454-probability-estimates-for-multi-class-classification-by-pairwise-coupling.pdf

Author

Alexandros Karatzoglou
alexandros.karatzoglou@ci.tuwien.ac.at

See also

Examples

## create artificial pairwise probabilities
pairs <- matrix(c(0.82,0.12,0.76,0.1,0.9,0.05),2)

couple(pairs)
#>            [,1]       [,2]      [,3]
#> [1,] 0.69846365 0.18721937 0.1143170
#> [2,] 0.05628216 0.05613146 0.8875864

couple(pairs, coupler="pkpd")
#>            [,1]       [,2]       [,3]
#> [1,] 0.72069954 0.19526315 0.08403731
#> [2,] 0.05968271 0.05137474 0.88894255

couple(pairs, coupler ="vote")
#>           [,1]      [,2]      [,3]
#> [1,] 0.6666667 0.3333333 0.0000000
#> [2,] 0.0000000 0.3333333 0.6666667