分類モデルを作ったあと、「このモデルは良いのか?」を判断するには評価指標(メトリクス)を正しく読む必要があります。Accuracy が高いからといって必ずしも良いモデルとは限りません。この記事では、Qast のリーダーボードに表示される分類指標の意味と、シーンごとの使い分けを解説します。
混同行列 — すべての分類指標の出発点
分類指標を理解するには、まず混同行列(Confusion Matrix)を知る必要があります。混同行列は、モデルの予測と実際のラベルを 2×2 のマトリクスにまとめたもので、TP(真陽性)・TN(真陰性)・FP(偽陽性)・FN(偽陰性)の 4 つのセルで構成されます。
- 1
TP(True Positive / 真陽性)
「陽性」と予測し、実際にも陽性だったケース。例:スパムと判定し、実際にスパムだった。
- 2
TN(True Negative / 真陰性)
「陰性」と予測し、実際にも陰性だったケース。例:正常メールと判定し、実際に正常メールだった。
- 3
FP(False Positive / 偽陽性)
「陽性」と予測したが、実際は陰性だったケース。例:正常メールをスパムと誤判定した。「誤検知」とも呼ばれます。
- 4
FN(False Negative / 偽陰性)
「陰性」と予測したが、実際は陽性だったケース。例:スパムを正常メールと見逃した。「見逃し」とも呼ばれます。
FP と FN のどちらのコストが高いかはビジネスによって異なります。医療診断では見逃し(FN)が致命的ですし、スパムフィルターでは誤検知(FP)で重要なメールがブロックされるのが問題です。この違いが、どの指標を重視すべきかを決定します。
Accuracy(正解率) — もっともシンプルな指標
Accuracy は「全体のうち、正しく分類できた割合」です。計算式は (TP + TN) / (TP + TN + FP + FN) で、直感的に理解しやすいのが利点です。しかし、クラスの偏り(不均衡データ)がある場合は注意が必要です。
例えば、不良品率が 1% のデータで「すべて良品」と予測するモデルは Accuracy 99% を達成しますが、不良品を一つも検出できません。Accuracy はクラスの偏りがない場合に有効で、偏りがある場合は他の指標と併用すべきです。
Precision(適合率) — 「陽性と予測したものの正確さ」
Precision は「陽性と予測したうち、実際に陽性だった割合」で、TP / (TP + FP) で計算します。FP(誤検知)のコストが高いシーンで重視すべき指標です。例えば、スパムフィルターで正常メールを誤ってブロックしたくない場合や、推薦システムでユーザーに不適切なアイテムを表示したくない場合に重要です。
Recall(再現率) — 「実際の陽性をどれだけ捉えたか」
Recall は「実際に陽性であるもののうち、正しく陽性と予測できた割合」で、TP / (TP + FN) で計算します。FN(見逃し)のコストが高いシーンで重視すべき指標です。例えば、がん検診で病気の見逃しを最小化したい場合や、不正検知で不正取引を漏れなく捕捉したい場合に重要です。
Precision と Recall はトレードオフの関係にあります。閾値を下げて「疑わしいものはすべて陽性」と判定すれば Recall は上がりますが、Precision は下がります。このバランスをどこに置くかは、ビジネスの要件に依存します。
F1 スコア — Precision と Recall のバランス指標
F1 スコアは Precision と Recall の調和平均で、2 × Precision × Recall / (Precision + Recall) で計算します。両者を 1 つの数値に統合できるため、モデルの総合力を手早く比較したい場合に便利です。特にクラスの偏りがある不均衡データでは、Accuracy よりも F1 スコアの方が実態に即した評価を提供します。
Qast のリーダーボードでは、不均衡データを検出した場合に F1 スコアをデフォルトのソート指標として表示します。多クラス分類の場合は、マクロ平均 F1(各クラスの F1 の単純平均)とウェイテッド平均 F1(クラスのサンプル数で重み付け)の両方が表示されます。
AUC-ROC — 閾値に依存しない総合評価
ROC 曲線(Receiver Operating Characteristic Curve)は、分類閾値を 0 から 1 まで変化させたときの TPR(Recall)と FPR(偽陽性率)の関係をプロットしたグラフです。AUC(Area Under the Curve)はこの曲線の下の面積で、0.5(ランダム予測)〜 1.0(完全な分類)の値を取ります。
AUC-ROC の最大の利点は、特定の閾値に依存せずにモデルの分類能力を評価できることです。閾値の設定はデプロイ後に調整できるため、「モデル自体の分離能力」を純粋に比較したい場合に最適です。
- 1
AUC = 1.0
完璧な分類。すべてのサンプルを正しく分離できている。
- 2
AUC = 0.9 以上
非常に優秀なモデル。多くのビジネスユースケースで実用的。
- 3
AUC = 0.7〜0.9
良好〜実用的なモデル。タスクの難易度によっては十分な性能。
- 4
AUC = 0.5
ランダムな予測と同等。モデルが分類を学習できていない。
Log Loss(対数損失) — 確率の正確さを測る
Log Loss は、モデルが出力する確率の正確さを評価する指標です。例えば「離脱確率 90%」と予測して実際に離脱した場合と、「離脱確率 51%」と予測して離脱した場合では、前者の方が Log Loss は小さく(良く)なります。確率ベースの意思決定(リスクスコアリング、確率的な予算配分など)を行う場合に特に重要な指標です。
Cohen's Kappa — 偶然の一致を考慮した指標
Cohen's Kappa は、偶然の一致を差し引いて「モデルがどれだけ意味のある予測をしているか」を評価する指標です。値は -1〜1 で、0 は偶然レベル、1 は完全な一致を意味します。Accuracy はクラスの偏りに影響されやすいですが、Kappa はこれを補正するため、不均衡データでも安定した評価ができます。
シーン別:どの指標を重視すべきか
- 1
クラスが均衡しているとき → Accuracy
ポジティブとネガティブがほぼ同数の場合、Accuracy がもっとも直感的で信頼できる指標です。
- 2
見逃しを最小化したいとき → Recall
疾患の早期発見、不正検知など「漏れ」の代償が大きいケース。閾値を下げて Recall を上げることを検討します。
- 3
誤検知を最小化したいとき → Precision
スパム判定、レコメンドなど「ノイズ」がユーザー体験を損なうケース。閾値を上げて Precision を高めます。
- 4
バランスよく評価したいとき → F1 スコア
Precision と Recall の両立が必要な不均衡データでの汎用的な指標。迷ったらまず F1 を確認しましょう。
- 5
モデル同士の純粋な比較 → AUC-ROC
閾値を後から調整する前提で、モデルの分類能力を比較したいとき。閾値に依存しない公平な比較が可能です。
- 6
確率の正確性が重要 → Log Loss
リスクスコアリングや確率に基づく意思決定を行うケース。確率の「自信度」まで正確であることが求められます。
Qast のリーダーボードでの活用
Qast のリーダーボードでは、分類タスクの場合に Accuracy、F1 スコア、AUC-ROC、Log Loss、Precision、Recall が一覧表示されます。カラムヘッダーをクリックすると任意の指標でソートでき、ビジネスの目的に応じた指標で最適なモデルを選定できます。Qast はクラスの偏りを自動検出し、不均衡データの場合は F1 スコアをデフォルトソートにするため、初心者でも適切な指標で評価を始められます。
複数の指標を総合的に確認することが重要です。1 つの指標だけで判断せず、Accuracy・F1・AUC-ROC を三点セットで確認する習慣をつけましょう。Qast のリーダーボードなら、カラムを見比べるだけで簡単に比較できます。


