ROC曲線とは?なぜ不均衡データ時には使うべきでない? 分かりやすく説明


目次

  1. ROC曲線とは
  2. 用語理解
  3. (改めて)ROC曲線とは
  4. ROC-AUCとは
  5. ROC-AUCと不均衡データ

前提知識
1.混合行列とは何かについて理解していること
2.ロジスティック回帰について知っていること。

1. ROC曲線とは

Wikipediaによれば
「受信者操作特性(じゅしんしゃそうさとくせい、英 Receiver Operating Characteristic, ROC)は、信号処理の概念で、観測された信号からあるものの存在を判定する際の基準となる特性である。

図の上はある疾患について、特定の検査の結果の分布を、陰性者、陽性者別に表示するものである。この例では陰性者の方が全体的に結果が小さい値を示す。そこにクリテリオン(基準、カットオフポイント)を導入し、その値以上の場合陽性、そうでなければ陰性だとする。今、カットオフポイントとしてBを採用すると.....」

(゚∀゚) ファ?

Wikipediaはより詳しく説明しているので後で読むとして、まずはROC曲線をシンプルに理解しましょう。

ROC曲線とは「分類器のカットオフポイントごとにTPRとFPRを示して作られた曲線」です。

このことを理解するのに、まず用語の意味(TPR, FPR, カットオフポイント)を知る必要があります。

用語理解

TP (True Positive、真陽性)

TPRを理解するのにTPをまずは理解する必要があります。
これは分類器に陽性(Positive)と判断され、それが真(True)だったサンプルの数です。

FN (False Negative、偽陰性)

これは分類器に陰性(Negative)と判断され、それが偽(False)だったサンプルの数です。

FP (False Positive、偽陽性)

これは分類器に陽性(Positive)と判断され、それが偽(False)だったサンプルの数です。

TN (True Negative、真陰性)

これは分類器に陰性(Negative)と判断され、それが真(True)だったサンプルの数です。

TPR (True Positive Rate、真陽性率)

これは陽性の合計から見た真陽性の割合です。

真陽性 (TP) - 分類器に陽性(Positive)と判断され、それが真(True)だったサンプルの数

TPR = \frac{TP}{TP+FN} = \frac{TP}{陽性の合計数}

FPR (False Positive Rate、偽陽性率)

これは陰性の合計から見た偽陽性の割合です。

偽陽性 (FP) - 分類器に陽性(Negative)と判断され、それが偽(False)だったサンプルの数

FPR = \frac{FP}{FP+TN} = \frac{FP}{陰性の合計数}

以下、TP, FP, TN, FNの混合行列です。

カットオフポイント

ここでいうカットオフポイントとは分類器が陽性と判断するか陰性と判断するかの境目です。例えば、癌である確率が58%の患者がいたとして分類器のカットオフポイントを50%とした場合、患者は50%以上なので陽性と判断されます。また50%以下の場合は陰性と判断されます。

それでは実際に分類器ではどう示せるでしょうか?以下はロジスティック回帰を例にカットオフ 75%を示してます。(ちなみに左から数えてカットオフ25%と呼んでも右から数えて75%と呼んでも意味は同じですが、ここでは右から数えています。)

確率(Y軸)が0.25より上は全て陽性と分類器が判断していることがわかります。

(改めて)ROC曲線とは

ROC曲線とは「分類器のカットオフポイントごとにTPRとFPRを示して作られた曲線」です。

TPRはX軸にFPRはY軸として示します。またカットオフポイントは0%から100%まであります。

ロジスティック回帰の分類器を例に、なぜカットオフが陰性の方へ移動するごとにTPRとFPRが増えているのかを図解しました。

カットオフが0%のとき(全てのデータを陰性と判断するとき)は、そもそも分類器が陽性と判断しないのでTPRもFPRもゼロなことがわかります。

ROC曲線が斜めに直線のときは、分類器がランダム(P(X)=0.5)に判断していることがわかります。これはカットオフが移動するごとにTPRとFPRが同じ割合で増えているからです。

ROC-AUCとは

ROC-AUCとは曲線下の面積です。

ROC-AUCを使うべきでないとき

データが不均衡なとき

ROC-AUCは不均衡データ時にモデルの質に関わらず高いスコアを出します。なぜならFPRが低くなりやすいからです。極端な例として、ここに10000行のデータ(10行を陽性のデータ、9990行を陰性のデータとする)があるとします。するとFPRの分母である陰性の合計数は9990となりFPRは0に近くなることが分かります。逆にTPRはそこまで変わりません。よってFPRが低いときでもTPRは高いのでROC-AUCのスコアは高くなります。

TPR = \frac{TP}{TP+FN} = \frac{TP}{陽性の合計数}
FPR = \frac{FP}{FP+TN} = \frac{FP}{陰性の合計数}

また2つのモデルスコアの差を見る指標としても、不均衡データ時はROC-AUCを使うべきではありません。

先程の例で言えば、もしモデル1が10000行のうち、1000行を陽性と判断したとします。その場合、陽性の合計が10行なのでFPは990行です。そこでモデル2は100行を陽性と判断したとしましょう。すると陽性の合計は同じ10行なのでFPは90行です。

モデル1とモデル2のうち良いモデルとしては明らかにモデル2だと分かります。しかしFPRを指標として見るとモデル1は90/9990=0.0001、モデル2は990/9990 = 0.001となります(TPRは両方のモデルで同じ値)。これではROC-AUCのスコアの差が殆ど無くモデル1とモデル2の性能の差があまり表せないことがわかります。

参考文献

Precision-Recall AUC vs ROC AUC for class imbalance problems
https://www.kaggle.com/general/7517

The Relationship Between Precision-Recall and ROC Curves
http://pages.cs.wisc.edu/~jdavis/davisgoadrichcamera2.pdf