2024/6 機械学習評価指標入門「AUC、ROC曲線」

宮崎
本社

はじめに

AUCとROC曲線の概要

AUCとROC曲線の理解が深まる数式

True Positive Rate(TPR)

※Sensitivity(感度)とも呼ぶ

TPR = TP TP + FN

→つまりTPRとは真の値が陽性であるデータのうち、モデルが正しく陽性と予測できた割合のこと

False Positive Rate(FPR)

※1 - Specificity(1 - 特異度)とも呼ぶ

FPR = FP FP + TN

→つまりFPRとは真の値が陰性であるデータのうち、モデルが誤って陽性と予測した割合のこと

数式の補足

AUCとROC曲線の例示

ある2値分類モデルに特徴量を与え推論させた結果の以下テーブルがあるとする

データ 正解ラベル 予測確率
y1 0 0.1
y2 1 0.2
y3 0 0.3
y4 1 0.4
y5 0 0.5
y6 0 0.6
y7 1 0.7
y8 1 0.8
y9 1 0.9
y10 1 0.99

まず結論としてこのモデルのAUCは0.79となる

つづいてなぜそうなるのかだが、まずはAUCの算出する過程であるROCカーブを引いてみる

ROCカーブの引き方はつぎのとおり

そしてこの曲線より下側の面積を計算すればAUCが算出されるという手順になっている

→今回はAUC=0.79となる

auc1

続いて、なぜ降順に並べ1、0をみてルールに即して動かしていくだけで描けるのか詳しく説明する

閾値を1→0と動かしていく中で描かれる軌跡がROCであり、まず初めに閾値1のケースから考える

ROCの定義から閾値1であれば予測確率1以下すべてを陰性と判定する場合になる

つまりすべて陰性判定することになるので

したがって閾値1の場合、TPR=0%、FPR=0%となり一番左下に点をプロットする

auc2

引き続き閾値を1→0と動かしていく。

閾値<0.99の時点で予測確率<0.99をすべてを陰性と判定する場合になる(数学的に厳密ではなさそうですがイメージで・・・)

つまり1つだけ正しく陽性判定し、ほかすべてを強制的に陰性判定することになるので

したがって閾値1の場合、TPR≈16.7%、FPR=0%となり少し上に点をプロットする

auc3

引き続き閾値を1→0と動かしていく。

閾値<0.6時点で予測確率<0.6をすべてを陰性と判定し、他方予測確率>=0.6は陽性と判定することになり、このタイミングで初めて真の値が陰性であるものを誤って陽性判定してしまうものが1つ発生することになる

つまり

したがって閾値<0.6の場合、TPR≈66.7%、FPR=25%となり初めて右に少し移動した点をプロットすることになる

auc4

あとはこの操作を最後のデータまで続け軌跡を結ぶんだものがROCカーブとなる

したがって降順で並べ(閾値を1→0と動かしていくなかで)真の値を確認することを考えると

結局このような操作を繰り返せば描けるため、決まりに沿って眺めるだけでROCカーブが描けるということになる

こんな記事も読まれています