2クラス分類モデルの性能は、正解率のような1つの数字だけでは見えない部分があります。「どこで線引き(閾値)するか」を変えると当たり外れの傾向が変わるからです。その全体像をひと目で見せてくれるのがROC曲線です。この記事では、縦軸・横軸の意味と曲線の描かれ方、良いモデルの曲線の形を解説します。
📖 ひと言でいうと
ROC曲線とは、2クラス分類モデルの判定の閾値を0から1まで変化させながら、横軸に偽陽性率FPR、縦軸に真陽性率TPRをプロットして得られる曲線で、モデルの性能を視覚的に捉えられる指標です。例えるなら、空港の金属探知機の感度ダイヤルを最弱から最強まで回しながら、「危険物の検知率」と「無害な人への誤反応率」の組み合わせを全部記録してグラフにしたもの、といえます。
🖼 1枚でわかるROC曲線
📘 公式テキストの説明
視覚的にモデル性能を捉えることができる指標。横軸にFPR=FP/(FP+TN)、縦軸にTPR=TP/(TP+FN)を取り、閾値を0から1に変化させていった際の値をプロットして得られる曲線。2クラス分類で閾値を0から1に変化させていった場合に、予測の当たり外れがどのように変化していくのかを表す。
かみ砕くと、分類モデルはふつう「陽性である確率」のようなスコアを出し、それがある閾値以上なら陽性と判定します。閾値をどこに置くかで「陽性の取りこぼし」と「陰性の誤検知」のバランスが変わるため、閾値1つ分の成績だけではモデルの実力は語れません。そこで閾値を0から1まで動かし、各閾値でのFPRとTPRの組を点として打っていくと1本の曲線になる——これがROC曲線です。
🔍 しっかり理解する
縦軸TPRと横軸FPRの意味
2クラス分類の結果は、真陽性TP・偽陽性FP・偽陰性FN・真陰性TNの4つ(混同行列)に分けられます。ROC曲線の2軸はここから作られます。
- TPR(真陽性率) = TP/(TP+FN)。実際に陽性であるもののうち、正しく陽性と判定できた割合。再現率と同じ式で、「見逃さない力」を表します。
- FPR(偽陽性率) = FP/(FP+TN)。実際には陰性であるもののうち、誤って陽性と判定してしまった割合。「濡れ衣を着せてしまう率」です。
理想は「TPRが高く、FPRが低い」こと、つまりグラフの左上の隅に近い状態です。ただしこの2つは綱引きの関係にあります。閾値を下げて陽性判定を増やせばTPRは上がりますが、そのぶん陰性を誤って陽性にする機会も増え、FPRも一緒に上がってしまうのが普通です。このトレードオフの様子を丸ごと可視化するのがROC曲線の役目です。
閾値を動かすと曲線が描かれる
閾値を0にすると全データを陽性と判定するのでTPRもFPRも1(右上の点)になり、閾値を1にするとほぼ全てを陰性と判定するのでTPRもFPRも0(左下の点)に近づきます。その間を閾値を少しずつ動かしながら結んだ軌跡がROC曲線です。つまり曲線上の1点1点が「ある閾値を選んだときのモデルの成績」を表しています。
曲線の形が語るモデルの実力
完全に当てられる理想のモデルは、FPRを0に保ったままTPRを1にできるので、曲線は左下→左上→右上と直角に近い形になります。逆に、コイン投げのようなランダムな判定では TPR ≒ FPR となり、曲線は左下から右上への対角線に張り付きます。実際のモデルはこの中間で、曲線が左上に大きく膨らむほど「誤検知を抑えたまま見逃しを減らせる」良いモデルです。この膨らみ具合を面積として数値化したものが、次のキーワードとして学ぶAUCです。
💡 具体例で考える
迷惑メールフィルタを例にしましょう。モデルは各メールに「迷惑メールらしさ」のスコアを付けます。閾値を低く(たとえば0.2に)すると、怪しいメールはほぼ捕まえられる(TPRが高い)一方、仕事の重要メールまで迷惑フォルダ行きになる(FPRも高い)。閾値を高く(0.9に)すると誤判定は減りますが、すり抜ける迷惑メールが増えます。
どの閾値が良いかは利用者の事情次第ですが、その判断材料を一望させてくれるのがROC曲線です。曲線を見れば「FPRを1%に抑えたとき、TPRはどこまで出せるのか」が読み取れますし、2つのフィルタ製品のROC曲線を重ねれば、閾値の選び方に依存せずどちらが優秀かを比較できます。1つの閾値での正解率だけを比べるより、はるかに多くの情報が得られるのです。
⚠️ よくある誤解・紛らわしい用語
- 軸の取り違え: 横軸がFPR、縦軸がTPRです。逆に覚えると「左上が良い」という読み方まで崩れるので、「縦(た)にTPR」などと確実に固定しましょう。
- AUCとの混同: ROC曲線は「曲線そのもの」、AUCは「その曲線の下の面積」という数値指標です。ROC曲線は視覚的な把握、AUCは1つの数値での比較に使う、という役割の違いがあります。
- ROC曲線上の点は1つの成績ではない: 曲線は特定の閾値の成績ではなく、閾値0から1までの全成績の軌跡です。「このモデルのTPRはいくつか」という問いは、閾値を決めて初めて答えられます。
- 適合率-再現率曲線(PR曲線)との違い: 似たグラフに、横軸に再現率・縦軸に適合率を取るPR曲線があります。軸の定義が異なる別の可視化手法なので混同しないようにしましょう。
📝 試験でのポイント
- 「横軸FPR=FP/(FP+TN)、縦軸TPR=TP/(TP+FN)」という軸の定義式は最頻出ポイントです。分母まで正確に覚えましょう。
- 「閾値を0から1に変化させてプロットする」という描き方の記述が問われることが想定されます。
- 「左上に膨らむほど良い」「対角線はランダム相当」という曲線の読み方を問う出題も考えられます。
- TPRが再現率と同じ式であること、混同行列(TP/FP/FN/TN)との対応関係を整理しておきましょう。
📚 まとめ
ROC曲線は、2クラス分類の閾値を0から1に変化させながら、横軸FPR=FP/(FP+TN)、縦軸TPR=TP/(TP+FN)をプロットして得られる、モデル性能を視覚的に捉えるための曲線です。曲線上の各点は各閾値での成績を表し、左上に膨らむほど「誤検知を抑えつつ見逃しも少ない」良いモデルを意味します。曲線の下の面積を数値化したAUCとセットで、混同行列から軸の式まで一続きに理解しておきましょう。
