ROC曲線メモ

はじめに

複数の分類器の性能を比較したりするときに利用されるROC曲線ついて、ちょっとメモ。

ROC曲線とは

  • Receiver Operating Characteristic Curve
    • 受信者操作特性曲線
    • もとはレーダー技術で雑音の中から敵機の存在を検出するための方法として開発
  • 分類で、境界値ごとの「真陽性」と「偽陽性(=1-特異度)」を軸にとった2次元グラフにプロットしたもの
    • 複数の2値分類の手法の性能を比較するのに便利
    • 分類クラスの歪みやエラーコストを切り離してパフォーマンス評価を行える
      • precision-recall曲線などに対して利点
曲線の描き方
  • 分類器について、メトリクス(指標)が得られる
    • True Positive, True Negative, False Positive, False Negativeなど
    • 真陽率(TP率)=TP/(TP+FN)
    • 偽陽率(FP率)=1-特異度=1-( TN/(TN+FP) )=FP/(TN+FP)
  • 分類器の各パラメータについて、x,y軸に偽陽率(x軸)と真陽率(y軸)の空間(ROC-space)に点をプロットする
    • ROC-spaceにおいては、左上(0,1)に近いほどよい性能を示すことになる
  • 点を偽陽率が小さい点(同じ偽陽率なら真陽率が小さいもの)からつないでいく
  • ランキングやスコアを出力し閾値を使って2値分類器を実現するタイプの分類器の場合は、テストの各ケースのスコアと結果を使ってROC曲線を描ける
効率的なROC曲線の描き方
  • 参考資料の論文にでてくるアルゴリズム
    • テストデータに対して、偽陽率が増加するようにROCの点を並び替えたものを返す
  • 各例がPositiveになる確率をf(i)とし、降順でテストケースを並び替える
  • f(i)!=f_prevであれば、(FP/N, TP/P)を出力リストRに入れていく
    • f_prevはひとつ前のテストケース
    • FPはそのテストケースまでにでてきたnegative例の個数
    • TPはそのテストケースまでにでてきたpositive例の個数
    • N,Pは、それぞれテストケースにでてくるnegative例の個数、positive例の個数(どちらも1以上である必要がある)

AUCとは

  • Area Under the Curve
    • 曲線下面積
  • 曲線の下の面積(積分値)のこと
    • ROC曲線は2次元のグラフのため、比較のために1つのスカラー値にするため、曲線の面積を用いたもの
    • 理想は1.0で、最悪の場合0.5になる
  • 場合によって、ガタガタの曲線になったりしてAUCが低いけど最適値では高い真陽性と偽陽性を示す場合がある
    • AUCのみでの比較は場合によってはよくない