機械学習の指標いろいろ(1) 〜ROC曲線とAUC〜
機械学習の学習済みモデルの精度には色々あります。
自分でもよくわかっていない指標がときどきあるので、調べたものをまとめます。
今回はROC曲線とAUC。
2値分類問題
ROC曲線とAUCは2値分類問題に使用する指標です。
2値分類問題とはその名の通り、入力データに対してYes/No問題として解決できるような問題です。
例えば、「この患者は病気にかかっている?」「このメールはスパムメール?」と言った問題です。
このような問題を考える場合には実際の正解とモデルの予測に応じて、次のような4つに分けることができます。
正解 | 予測 | 分類 |
---|---|---|
Yes | Yes | True Positive (TP) |
Yes | No | False Negative (FN) |
No | Yes | False Positive (FP) |
No | No | True Negative (TN) |
True/Falseは正解/不正解を表し、Positive/Negativeは予測がYes/Noを表します。
また、True Positive Rateを「正解がYesのもののうちどれだけをYesと予測できたか」とし、下のように表します。
さらに、False Positive Rateを「正解がNoのもののうちどれだけをYesと予測してしまったか」とし、下のように表します。
True Positive Rateはできるだけ大きい方がよく、False Positive Rateはできるだけ小さいほうが良いことがわかります。
また、割合ですので
ここまでが準備です。
ROC曲線
Yes/No問題の場合、モデルの出力はある実数値として、その値がある値(しきい値)よりも大きい場合はYes、小さい場合はNoと設計するのが自然です。
ここで、しきい値の値によっては次のようになることが予想されます。
- しきい値の値が大きい場合 : 多くのものをNoと予測するので、True Positive Rate、False Positive Rateがともに小さい値になる。
- しきい値の値が小さい場合 : 多くのものをYesと予測するので、True Positive Rate、False Positive Rateがともに大きい値になる。
このように、True Positive RateとFalse Positive Rateがトレードオフの関係になるため、色々なしきい値に対してこれらの値を調べる必要があります。
このとき、しきい値の値を変えながら、横軸にFalse Positive Rateを、縦軸にTrue Positive Rateをプロットし、線でつないだものをROC曲線と呼びます。
下はROC曲線の例です。
