On Reoptimizing Multi-Class Classifiers

Abstract

Significant changes in the instance distribution or associated cost function of a learning problem require one to reoptimize a previously-learned classifier to work under new conditions. We study the problem of reoptimizing a multi-class classifier based on its ROC hypersurface and a matrix describing the costs of each type of prediction error. For a binary classifier, it is straightforward to find an optimal operating point based on its ROC curve and the relative cost of true positive to false positive error. However, the corresponding multi-class problem (finding an optimal operating point based on a ROC hypersurface and cost matrix) is more challenging and until now, it was unknown whether an efficient algorithm existed that found an optimal solution. We answer this question by first proving that the decision version of this problem is $\mathsf{NP}$ -complete. As a complementary positive result, we give an algorithm that finds an optimal solution in polynomial time if the number of classes n is a constant. We also present several heuristics for this problem, including linear, nonlinear, and quadratic programming formulations, genetic algorithms, and a customized algorithm. Empirical results suggest that under both uniform and non-uniform cost models, simple greedy methods outperform more sophisticated methods.

Cite

Text

Bourke et al. "On Reoptimizing Multi-Class Classifiers." Machine Learning, 2008. doi:10.1007/S10994-008-5056-8

Markdown

[Bourke et al. "On Reoptimizing Multi-Class Classifiers." Machine Learning, 2008.](https://mlanthology.org/mlj/2008/bourke2008mlj-reoptimizing/) doi:10.1007/S10994-008-5056-8

BibTeX

@article{bourke2008mlj-reoptimizing,
  title     = {{On Reoptimizing Multi-Class Classifiers}},
  author    = {Bourke, Chris and Deng, Kun and Scott, Stephen D. and Schapire, Robert E. and Vinodchandran, N. V.},
  journal   = {Machine Learning},
  year      = {2008},
  pages     = {219-242},
  doi       = {10.1007/S10994-008-5056-8},
  volume    = {71},
  url       = {https://mlanthology.org/mlj/2008/bourke2008mlj-reoptimizing/}
}