ROC曲線とAUCについて
分類問題の評価をするときにROC曲線をよく使うと思うんですが、それの縦軸ってなんだっけ?とかなってしまいがちなので、備忘録としてROC曲線について紹介していきます
ROC曲線を評価する指標としてAUCというのもあるので、それも合わせてまとめていきます
ROC曲線とは
そもそもROC曲線とはなんぞやって話をしていきます
ROC曲線とはざっくり言うと、
分類の閾値を変化させていったときに、精度がどのように変化していくか
を可視化したものになります
ROC曲線の例
言葉だけだと理解しづらいので、ここからは図を用いて解説していきます
ROC曲線の例を以下に示します
縦軸、横軸は以下の計算式で算出されたものです
- False Positive Rate(横軸): FP/(FP+TN)
- 実際の負例の中で予測が間違っていたもの、低いほど良い
- True Positive Rate(縦軸): TP/(TP+FN)
- 実際の正例の中で予測が合っていたもの、高いほど良い
※参考
TP,FPとかの詳しい説明は、以下を参考にしてくださいhttps://minmin-21.hatenablog.com/entry/2019/03/23/152216
分類の閾値を変化させていったとき、False Positive Rate(以下FPR)とTrue Positive Rate(以下TPR)をプロットしたものがROC曲線になります
FPRとTPRのトレードオフについて
FPRとTPRはトレードオフの関係にあります
つまり、FPRが低いとき(間違えた真の負例が少ない)ときは、TPRも低くなってしまいます
また、逆にFPRが高い時はTPRも高くなります
ここは自分でもこんがらがってしまうので、もう少し詳しく説明します
例えば閾値を0.01にした場合を考えます
- 正例の確率が0.02と低いものでも正例と判定されるためFP(間違って正例と判定されたもの)が大きくなる
→ FPRが高くなる - ほとんどのものが正例と判定されるためTP(正例と予測された実際の正例)は大きくなる
→ TPRも高くなる
逆に閾値を0.99にした場合を考えます
- ほとんどのものが負例と判定されるためFPが小さくなる
→ FPRが低くなる - 逆に正例の確率が0.98とほぼほぼ正例であると思われるものも負例と判定されてしまうため、TPは小さくなる
→TPRも低くなる
グラフ上で確認すると、先ほどのグラフだと閾値が0.58のときにTPRが0.92,FPRが0.19となっています
閾値を0.89にずらすと、TPRが0.77でFPRが0.09ということが分かると思います
AUCとは
先ほど、AUCとはROC曲線を評価する指標だと説明しましたが、そもそもROC曲線はどのように評価すればよいのでしょう?
理想的なROC曲線と、良くないROC曲線を比較しながら説明していきます
理想的なROC曲線は、以下のようにFPRが0のときにTPRが1になっている曲線です
逆に良くないROC曲線とは、以下のような曲線です
(AUC=0.79は悪すぎる例ではないと思うのですが、そこはスルーしてください笑)
上の二つを比較してみると、ROC曲線の内側の面積が広い方が良いROC曲線ということが分かると思います
AUCはこの内側の面積を定量的に表したものになり、理想的なROC曲線のAUCを1としてそれを基準に評価した指標になります
参考
- 【ROC曲線とAUC】機械学習の評価指標についての基礎講座 - 世界一やさしいデータ分析教室
- 機械学習の評価指標 – ROC曲線とAUC | GMOアドパートナーズグループ TECH BLOG byGMO
- ROC曲線とAUCの出力 - Qiita
- Machine Learning実践の極意 機械学習システム構築の勘所をつかむ! (著)Henrik Brink, Joseph W. Richards, Mark Fetherolf (訳)株式会社クイープ