分類評価指標の数理:ROC・PR・F1・AUC
閾値ひとつで適合率も再現率も動く分類評価を、混同行列からROC・PR・AUCまで一本の筋で理解できます。不均衡データでROCが楽観的に見える理由と、目的に沿った閾値の選び方が腑に落ちます。
- 1.適合率・再現率・F1はすべて混同行列の4つの数から導かれ、閾値の関数として連続的に動く。単一の数値ではなく曲線で捉えるのが本質。
- 2.AUCは「ランダムに選んだ陽性が陰性より高いスコアを得る確率」と等価で、閾値非依存の順位品質の指標。ROC曲線下の面積として計算される。
- 3.不均衡データではROCのFPRが多数の陰性で薄まり楽観的に見える。少数の陽性を当てたい場合はPR曲線(適合率と再現率の面)の方が劣化を正しく映す。
評価指標は「点」ではなく「曲線」である
分類モデルの多くは、ラベルそのものではなくスコア(陽性らしさの連続値、例えばロジスティック回帰の出力確率)を返します。最終的なラベルは、そのスコアに閾値を当てて初めて決まります。ここに分類評価の核心があります。適合率・再現率・F1といった指標は固定値ではなく、閾値を動かすと連続的に変化する関数なのです。だから「このモデルの精度は0.85」という言い方は、暗黙にある閾値(多くは0.5)を選んだ後の一点を切り取っているに過ぎません。本稿は、混同行列という出発点から、ROC・PR・AUCという「曲線としての評価」へ視点を引き上げ、なぜ不均衡データでROCよりPRが適するのかを原理から説明します。
基礎の混同行列・適合率・再現率は モデル評価 で扱っています。本稿はそこから一段進め、閾値の関数としての曲線評価とAUCの確率的解釈、不均衡下での指標選択に集中します。スコアを出すモデル側の数理は ロジスティック回帰の数理 を参照してください。
混同行列から派生する4つの率
すべては混同行列の4つの数 {TP, FP, FN, TN} から始まります。陽性・陰性それぞれを分母に取ると、4つの基本的な率が定義できます。
再現率 TPR = TP / (TP + FN) # 実際の陽性のうち拾えた割合(=Recall, 感度)
FPR = FP / (FP + TN) # 実際の陰性のうち誤って陽性とした割合
適合率 = TP / (TP + FP) # 陽性と予測したうち本当に陽性だった割合
特異度 = TN / (FP + TN) # = 1 − FPR
注目すべきは分母の違いです。再現率(TPR)と特異度の分母は「実際のクラスの数」で、FPRも同じく陰性の総数が分母。一方、適合率の分母は「陽性と予測した数」で、ここに予測側の事情が混じります。この分母の差が、後で述べるROCとPRの性質の分かれ目になります。
ROC曲線とAUCの確率的解釈
ROC曲線は、閾値を高い方から低い方へ連続的に動かしたときの (FPR, TPR) の軌跡です。閾値を最高にすれば何も陽性と判定せず原点 (0,0)、最低にすれば全部陽性で (1,1)。その間を結ぶ曲線が左上に張り付くほど良いモデルです。
AUC(Area Under the Curve) はこの曲線下の面積で、0.5がランダム、1.0が完璧を意味します。AUCの真価は、単なる面積ではなく順位の品質を測る確率として解釈できる点にあります。
AUCは「ランダムに選んだ1つの陽性サンプルのスコアが、ランダムに選んだ1つの陰性サンプルのスコアより高い確率」と数学的に等価です。式で書けば AUC = P(score(陽性) > score(陰性))。これはマン・ホイットニーのU統計量と一致します。だからAUCは閾値に依存しない——閾値ではなく、陽性と陰性をどれだけ正しく順序付けられるかだけを見ます。スコアの絶対値ではなく相対順位だけが効くため、スコアを単調変換しても(例えばキャリブレーションしても)AUCは不変です。
この順位解釈から、AUCの計算は面積の積分ではなくペアの数え上げで求まります。全ての(陽性, 陰性)ペアについて陽性のスコアが高い割合を数えれば、それがそのままAUCです。
AUC = (陽性スコア > 陰性スコア となるペア数) / (陽性数 × 陰性数)
# 同点は0.5として数える
PR曲線:適合率と再現率の面
PR曲線は同じく閾値を動かしたときの (再現率, 適合率) の軌跡です。ROCがTPR対FPRだったのに対し、PRは再現率対適合率を見ます。違いは指標の選び方だけに見えますが、前節で触れた分母の違いが決定的に効きます。
- ROCのFPRの分母は陰性の総数(TN+FP)。陰性が大量にあると、少々FPが増えてもFPRはなかなか上がらない。
- PRの適合率の分母は陽性予測の総数(TP+FP)。陰性が大量にあると、わずかなFPでも適合率が大きく落ちる。
つまりPRの適合率は陰性が多いほど誤検出に敏感です。ベースライン(ランダム分類)の値も両者で異なります。ROCの対角線は常に0.5ですが、PRのベースラインは陽性の割合そのものになります。陽性が1%なら、ランダム分類器のPR-AUCはおよそ0.01です。
| 観点 | ROC曲線 / ROC-AUC | PR曲線 / PR-AUC |
|---|---|---|
| 軸 | 横=FPR、縦=TPR(再現率) | 横=再現率、縦=適合率 |
| 分母に陰性数が入るか | FPRの分母に陰性総数が入る | 適合率の分母は陽性予測数のみ |
| ランダム時の基準値 | 常に0.5(対角線) | 陽性の割合(=有病率) |
| 不均衡への感度 | 陰性が多いと楽観的に見える | 誤検出の増加を鋭く反映 |
| 閾値非依存の解釈 | 陽性>陰性となる順位確率 | 面積に直接の確率解釈はない |
なぜ不均衡データではPRが適するのか
ここが本稿の山場です。陽性が極端に少ない(例:不正検知で0.1%)状況を考えます。陰性が圧倒的に多いため、FPRの分母 FP+TN は巨大です。仮にFPが100件増えても、陰性が100万件あればFPRは 100/1,000,000 = 0.0001 しか動きません。ROC曲線はほとんど左端に張り付き、AUCは0.99のように楽観的な高値を示します。実務的には100件の誤検出が運用を圧迫しているのに、ROCはそれをほぼ無視するのです。
一方、適合率の分母は TP+FP、すなわち陽性と予測した件数だけ。陽性自体が少ないので、FPが100件増えれば適合率は容易に半減します。PR曲線とPR-AUCはこの劣化を正面から映し、モデルが「実用に耐えるほど誤検出を抑えられているか」を正しく評価します。
不均衡データでROC-AUCが高いことは「少数クラスをよく当てている」ことを意味しません。陰性が多すぎてFPRが薄まっているだけのことがあります。少数の陽性を見つけるのが目的なら、ROC-AUCではなくPR-AUC(平均適合率, Average Precision)を主指標に据えてください。両者は同じ予測でも大きく食い違います。
閾値選択の原理:曲線から一点を選ぶ
曲線は性能の全体像を与えますが、運用では結局1つの閾値を選んでラベルを確定させねばなりません。この選択は「何を間違えると、どれだけ困るか」というコストの宣言です。
- F1(適合率と再現率の調和平均)を最大化:両者をバランス良く両立したいとき。
F1 = 2·適合率·再現率 / (適合率+再現率)。一方が極端に低いと強く罰せられる。 - Fβで重みを変える:再現率を適合率のβ²倍重視する一般化。
β=2なら見逃しを嫌う(医療スクリーニング)、β=0.5なら誤検出を嫌う(スパム判定)。 - コスト最小化:FPとFNに具体的な金額・損失を割り当て、
期待コスト = FP数·C_FP + FN数·C_FNを最小化する閾値を直接選ぶ。最も実務に即した方法。
閾値はモデルの一部ではなく、PR曲線(不均衡なら)上で目的関数(F1やコスト)を最大化する点として検証データから選ぶべきものです。AUC系の指標でモデルを比較し、閾値で運用点を決める——この2段階を分けると評価が整理されます。スコアの順位品質はAUCが、確定後の運用性能は選んだ閾値での混同行列が語ります。
まとめ:曲線で測り、点で運用する
| 論点 | 実態 | 結論 |
|---|---|---|
| 指標の正体 | 適合率・再現率は閾値の関数 | 単一値ではなく曲線で捉える |
| AUCの意味 | 陽性>陰性となる順位確率 | 閾値非依存・単調変換に不変 |
| ROC vs PR | 分母に陰性数が入るかの差 | 不均衡ではPRが劣化を正しく映す |
| 閾値選択 | コスト宣言=F1/Fβ/期待コスト最小化 | 検証データで運用点を決める |
分類評価の要点は、**「曲線で測り、点で運用する」**の一語に尽きます。ROC-AUCやPR-AUCは閾値に依存しない順位品質をモデル比較に提供し、最終的な閾値は目的のコストに沿って一点として選ぶ。そして不均衡データでは、ROCの楽観バイアスを避けてPRを主軸に据える——分母に何が入るかという数理を理解していれば、この使い分けは暗記ではなく必然として導けます。スコアを出すモデルの設計は ロジスティック回帰の数理、木系モデルでの確率出力は 決定木の分割基準 も併せて確認してください。
AI/機械学習 Article
分類評価指標の数理:ROC・PR・F1・AUCを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
モデル評価
比較で見る軸
難易度: advanced / カテゴリ: AI/機械学習 / タグ数: 6
導入後に効く点
AUCは「ランダムに選んだ陽性が陰性より高いスコアを得る確率」と等価で、閾値非依存の順位品質の指標。ROC曲線下の面積として計算される。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- AI/機械学習
- タグ数
- 6
判断チェックリスト
- 自社の用途が「モデル評価 / ROC曲線」に近いか確認する。
- 強みである「適合率・再現率・F1はすべて混同行列の4つの数から導かれ、閾値の関数として連続的に動く。単一の数値ではなく曲線で捉えるのが本質。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。