混同行列とは?分類モデルの性能評価を正しく理解する

AIを知りたい
分類モデルの評価で「混同行列」というのを見かけるのですが、これは何ですか?

AIエンジニア
混同行列(Confusion Matrix)は、分類モデルの予測結果を4つのカテゴリに整理した表です。モデルがどこで正解し、どこで間違えているかを一目で把握できます。精度(Accuracy)だけでは見えない情報を教えてくれる重要なツールです。

AIを知りたい
精度だけ見ていてはダメなんですか?

AIエンジニア
はい。例えば病気の検査で100人中95人が健康の場合、「全員健康」と予測するだけで精度95%になります。でも本当に病気の5人を見逃しているので、医療の現場では致命的です。混同行列を見れば、こうした問題がすぐにわかります。
混同行列(Confusion Matrix)とは、分類モデルの予測結果を真陽性・偽陽性・真陰性・偽陰性の4つに分類して表形式にまとめたものです。
モデルの強みと弱みを詳細に把握でき、精度・適合率・再現率・F1スコアなど各種評価指標の計算の基盤となります。二値分類だけでなく多クラス分類にも拡張できます。
4つの要素を理解する

AIを知りたい
TP、FP、TN、FNの違いがよくわからないのですが。

AIエンジニア
具体例で説明しますね。スパムメールの検出を考えましょう。TP(真陽性)はスパムを正しくスパムと判定。FP(偽陽性)は正常メールを誤ってスパムと判定。TN(真陰性)は正常メールを正しく正常と判定。FN(偽陰性)はスパムを見逃して正常と判定。前の文字がモデルの正誤、後ろの文字がモデルの予測です。

AIを知りたい
FPとFNはどちらがマズいのですか?

AIエンジニア
タスクによって異なります。スパムフィルタならFP(大事なメールがスパムに入る)が問題。がん検診ならFN(がんの見逃し)が致命的。どちらのミスを重視するかで、評価指標や閾値の設定が変わってきます。
| 予測:陽性 | 予測:陰性 | |
|---|---|---|
| 実際:陽性 | TP(真陽性) | FN(偽陰性) |
| 実際:陰性 | FP(偽陽性) | TN(真陰性) |
主要な評価指標の計算

AIを知りたい
混同行列からどんな評価指標が計算できるのですか?

AIエンジニア
代表的なものを紹介します。精度(Accuracy)は全体の正解率で(TP+TN)/(TP+FP+TN+FN)。適合率(Precision)は陽性と予測したもののうち実際に陽性の割合でTP/(TP+FP)。再現率(Recall)は実際の陽性のうちモデルが検出できた割合でTP/(TP+FN)です。

AIを知りたい
適合率と再現率はどう使い分けるのですか?

AIエンジニア
適合率を重視するのは誤報のコストが高い場合です。例えばスパム判定で誤って重要メールをブロックしたくない場面。再現率を重視するのは見逃しのコストが高い場合です。がん検診で見逃しは許されません。両方のバランスをとる指標がF1スコアです。
| 指標 | 計算式 | 意味 | 重視する場面 |
|---|---|---|---|
| 精度(Accuracy) | (TP+TN)/全体 | 全体の正解率 | クラスが均衡している場合 |
| 適合率(Precision) | TP/(TP+FP) | 陽性予測の的中率 | 誤報コストが高い場合 |
| 再現率(Recall) | TP/(TP+FN) | 陽性の検出率 | 見逃しコストが高い場合 |
| F1スコア | 2×P×R/(P+R) | 適合率と再現率の調和平均 | バランスを取りたい場合 |
| 特異度(Specificity) | TN/(TN+FP) | 陰性の正解率 | 偽陽性を減らしたい場合 |
多クラス分類での混同行列

AIを知りたい
2クラスではなく3クラス以上の場合はどうなりますか?

AIエンジニア
混同行列がN×Nのマトリックスに拡張されます。例えば犬・猫・鳥の3クラス分類なら3×3の行列になります。対角線上が正解、それ以外が誤分類を表します。各クラスごとにPrecision/Recallを計算し、macro平均やweighted平均で全体の指標を求めます。

AIを知りたい
不均衡なデータの場合はどうすればいいですか?

AIエンジニア
不均衡データではAccuracyではなく、F1スコアやAUC-ROCを使うのが定石です。macro平均は全クラスを等しく扱い、weighted平均はサンプル数で重み付けします。少数クラスの性能を重視するならmacro平均を見ましょう。
まとめ
混同行列は分類モデルの性能を正しく理解するための基本ツールです。TP/FP/TN/FNの4つの要素から、精度・適合率・再現率・F1スコアなどの評価指標を計算できます。タスクの性質に応じて適切な指標を選び、不均衡データにも対応できるようになりましょう。
