AUCを直感的に理解する

スコア分布・クロス表・ROC曲線をインタラクティブに動かして、AUC(Area Under the Curve)の本質を体感する教材です。

1. スコア分布とROC曲線の関係

二値分類モデルは、各データに「陽性らしさ」のスコアを与えます。陽性のスコア分布(赤)と陰性のスコア分布(青)がどれだけ分離しているかが、モデルの性能を決めます。しきい値を動かしてみましょう。

分布:
スコア分布
0.50
ROC曲線
ROCの傾き(= その地点での効率)
TPR(検出率)
-
FPR(誤報率)
-
ROCの傾き
-
AUC
-
陽性のスコア分布 陰性のスコア分布 現在のしきい値
ポイント:二峰性を選ぶと、ROC曲線にくびれが現れます。陽性スコアの「谷間」ではTPRが伸びずFPRだけが増えるためです。それでもROC上の点は常に右上にしか進みません — これは累積確率の単調性から数学的に保証されています。

2. クロス表で理解するAUC vs 正解率

しきい値を動かすとクロス表(混同行列)がリアルタイムに変化します。「均等」と「偏り」を切り替えて、データの偏りが正解率を騙す仕組みを体感してみてください。

分布:
データの偏り:
スコア分布
0.50
クロス表(混同行列)
実際に陽性実際に陰性
陽性と予測---
陰性と予測---
---
指標
TPR(検出率)
= TP / 実際の陽性
-
FPR(誤報率)
= FP / 実際の陰性
-
正解率
= (TP+TN) / 全体
-
AUC
しきい値に依存しない
-
ROC曲線
陽性 陰性 現在のしきい値
実験してみよう:「偏り 10:90」でしきい値を右端(1.00)まで動かすと、全員を陰性と判定する状態になります。正解率は0.90と高いのに、TPR = 0(病気の人を誰も見つけていない)。一方AUCはしきい値をどこに置いても同じ値です。これがAUCの強みです。

3. Accuracy / Recall / Precision / F1

すべてクロス表(混同行列)のどこを割り算するかで定義されます。ボタンを切り替えると、その指標が見ているセルがハイライトされます。

ハイライト:
場面:
クロス表
実際に陽性実際に陰性
陽性と予測--
陰性と予測--

各ボタンを押すと、その指標が見ているセルがハイライトされます。

指標
Accuracy(正解率)
(TP+TN) / 全体
-
Recall(= TPR)
TP / (TP+FN)
-
Precision(適合率)
TP / (TP+FP)
-
F1スコア
2TP / (2TP+FP+FN)
-
自由に値を変えてみよう
40
10
10
40
F1スコアの定義:F1 = 2·Precision·Recall / (Precision+Recall) = 2TP / (2TP+FP+FN)。PrecisionとRecallの調和平均であり、片方が極端に低いと容赦なくF1も下がります。また式にTNが含まれないため、Accuracyと違いデータの偏り(TNが大量にある状況)に騙されにくい性質があります。
いつどれを使うか:見逃しが致命的な場面(がん検診、異常検知)→ Recall重視。誤報が致命的な場面(スパム検出、推薦)→ Precision重視。両方のバランスが必要 → F1。データが偏っている → AUC。データが均等で単純な評価 → Accuracy。

まとめ

AUC(Area Under the ROC Curve)は、分類モデルが「陽性と陰性をどれだけうまく区別できるか」を、しきい値に依存せずに測る指標です。

確率的な解釈:ランダムに選んだ陽性1人と陰性1人のペアに対して、モデルが陽性のほうに高いスコアを与える確率。AUC = 0.92 なら、100ペア中92ペアで正しくランク付けできます。

正解率との違い:正解率はしきい値に依存し、データの偏りに弱い。AUCはすべてのしきい値にわたる総合的な区別力を測るため、偏ったデータでも騙されません。

Recall / Precision / F1:あるしきい値を固定したときの性能を評価する指標。Recallは「見逃しの少なさ」、Precisionは「誤報の少なさ」、F1は両者のバランスを測ります。すべてクロス表のどこを見ているかで定義され、目的に応じて使い分けます。