Transforming Classifier Scores into Accurate Multiclass Probability Estimates

Zadrozny and Elkan, “Transforming classifier scores into multiclass probability estimates”, SIGKDD‘02 (http://www.research.ibm.com/people/z/zadrozny/kdd2002-Transf.pdf) を読んだ。なぜ読んだかというと、Scikit-learnのSGDClassifierに関するドキュメント(http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.SGDClassifier.html)で複数のone-vs-restの二値分類器の出力を用いて多クラス分類において各クラスに属する確率を推定する方法として参照されていて興味を持ったため。

この論文では分類問題に置ける各クラスの確率の推定のための二つの手法を提案している。

  • calibrationされた二値分類問題の各クラスへの所属確率の推定値を各データ点に対するスコア(確率とは限らない)から推定
    • Naive BayesやSVMが出力する値は各クラスへの真の所属確率と単調な関係になっているが一致しているわけではない。Isotonic regression(単調増加する入力に対して出力も単調増加するようにフィッティングするノンパラメトリックなモデル)を用いてスコアを所属確率に近づけることによってうまく推定できる。
  • 多クラス分類問題での各クラスの確率を複数の二値分類問題での確率の推定値を用いて計算
    • 複数の二値分類問題をone-vs-restやall-pairsで作成して学習する。ここで学習されたモデルの出力を適当な最適化問題を解くことでP(c | x)を学習する(正直なところ次の行のone-vs-restのケース場合だけわかれば満足だったのでどのような最適化問題を解くかについては書かない)。one-vs-restで二値分類問題を作ったのならばP(c | x)の合計が1になるように正規化すればOK。