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

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

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スコアなどの評価指標を計算できます。タスクの性質に応じて適切な指標を選び、不均衡データにも対応できるようになりましょう。

関連記事