0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

混同行列を使った評価指標の計算方法と覚え方

Last updated at Posted at 2025-03-06

混同行列を使った評価指標の計算方法と覚え方

機械学習モデルの評価には混同行列(Confusion Matrix)を用いた指標が重要ですが、正解率(Accuracy)、適合率(Precision)、再現率(Recall)、F1スコア(F1-score)の計算方法が覚えづらいと感じます。日頃から使用していないと、ど忘れしますよね。
この記事では、これらの指標を整理し、計算方法をわかりやすく解説してみます。

1. 混同行列とは?

分類問題では、モデルの予測結果を以下のような 混同行列(Confusion Matrix) に整理できます。

実際の値 \ 予測値 予測ポジティブ 予測ネガティブ
実際ポジティブ(P) TP(真陽性) FN(偽陰性)
実際ネガティブ(N) FP(偽陽性) TN(真陰性)
  • TP(True Positive):正しくポジティブと予測
  • FP(False Positive):誤ってポジティブと予測(偽陽性)
  • FN(False Negative):誤ってネガティブと予測(偽陰性)
  • TN(True Negative):正しくネガティブと予測

これを基に、各評価指標を求めます。


2. 評価指標の計算式

(1) 正解率(Accuracy)

全体の正しく予測できた割合
$$
Accuracy = \frac{TP + TN}{TP + TN + FP + FN}
$$

  • 全データのうち、どれくらい正しく分類できたかを示します
  • 正解を正解/不正解を不正解として正しく予測できたかの割合と思えましょう
  • クラス不均衡がある場合は注意(例:極端にポジティブが少ない場合、すべてネガティブと予測してもAccuracyは高くなりがち)

(2) 適合率(Precision)

ポジティブと予測したもののうち、本当にポジティブ(に適合する)だった割合
$$
Precision = \frac{TP}{TP + FP}
$$

  • 「陽性」と判断したものの正確性を示す
  • FPが多いとPrecisionが低下(偽陽性を減らすことが重要)
  • 覚え方:「陽性」と予測したもの内、実際に「陽性」である割合です。実際の「陽性」の適合である
  • 例:スパムフィルターでは、スパムと判定したメールのうち、本当にスパムだった割合

(3) 再現率(Recall, Sensitivity)

実際にポジティブなもののうち、どれだけ正しくポジティブと予測(再現)できたか
$$
Recall = \frac{TP}{TP + FN}
$$

  • 本来検出すべきポジティブをどれだけ取り逃さずに取れているか
  • FNが多いとRecallが低下(偽陰性を減らすことが重要)
  • 覚え方:実際に「陽性」であるもの内、「陽性」と予想した割合です
  • 例:スパムフィルターでは、本来スパムのメールのうち、どれくらいスパムとして正しく分類できたか

(4) F1スコア(F1-score)

PrecisionとRecallのバランスを取る指標
$$
F1 = \frac{2 \times Precision \times Recall}{Precision + Recall}
$$

  • PrecisionとRecallの調和平均
  • 一方だけが高くてもF1スコアは上がらない
  • バランスよく予測性能を評価するのに適している

3. 覚え方のコツ

TP を基準に考える

  • Precision(適合率):「ポジティブ」と予測したものの正確さ
    → 分母に FP(誤予測のポジティブ)を含む
  • Recall(再現率):本来ポジティブのうち、どれだけ予測できたか
    → 分母に FN(取りこぼしたポジティブ)を含む

「PR」の順番を意識

  • Precision(P) は「ポジティブと予測したものの中の正解率」
  • Recall(R) は「本来ポジティブの中での検出率」
  • F1 は P と R のバランス

日常例でイメージ

  • Precision(適合率):「スパムだ」と判定したメールが本当にスパムか?
    • Precisionが低い → スパム以外もスパム判定(誤検出が多い)
  • Recall(再現率):本来スパムのメールをどれだけスパムと判定できたか?
    • Recallが低い → 本当のスパムを見逃す
  • F1スコア:Precision(正確性)とRecall(取りこぼしの少なさ)のバランス

4. 計算例(ガン診断)

問題設定

ある病院で、新しいAIを使ってガンの診断を行いました。
100人の患者に適用し、以下の結果が得られました:

実際の状態 \ 予測 ガンあり(陽性) ガンなし(陰性)
実際にガンあり(P) 40(TP) 10(FN)
実際にガンなし(N) 15(FP) 35(TN)

評価指標の計算

  1. 正解率(Accuracy)
    $$
    Accuracy = \frac{40 + 35}{40 + 35 + 15 + 10} = 0.75
    $$

  2. 適合率(Precision)
    $$
    Precision = \frac{40}{40 + 15} \approx 0.727
    $$

  3. 再現率(Recall)
    $$
    Recall = \frac{40}{40 + 10} = 0.8
    $$

  4. F1スコア
    $$
    F1 = \frac{2 \times 0.727 \times 0.8}{0.727 + 0.8} \approx 0.762
    $$

指標 計算結果 意味
Accuracy(正解率) 75.0% 全体の正解率。クラス不均衡があると信用しづらい
Precision(適合率) 72.7% 「ガンあり」と診断された中で、本当にガンだった割合
Recall(再現率) 80.0% 本当のガン患者をどれだけ正しく見つけられたか
F1-score 76.2% PrecisionとRecallのバランスを取った指標

5. どの指標を重視すべきか?

状況によって重要な指標が異なる

  1. Precision重視(FPを減らしたい)

    • 例:ガン診断で誤診(FP)を減らし、不必要な治療を防ぎたい場合
    • 対策:閾値を上げる(より厳しく「ガンあり」と判定)
  2. Recall重視(FNを減らしたい)

    • 例:ガンの見逃し(FN)を減らし、患者を確実に救いたい場合
    • 対策:閾値を下げる(「ガンなし」と誤診しないようにする)
  3. F1-score重視

    • PrecisionとRecallのバランスが重要な場合(例:スパムフィルター)

まとめ

  • Accuracy = 正しく分類できた割合
  • Precision = 「ポジティブ」と予測した中での正解率(FPを抑えたい)
  • Recall = 実際のポジティブをどれだけ捉えたか(FNを抑えたい)
  • F1-score = PrecisionとRecallのバランス

これで、混同行列を使った評価指標が、明確になったはずです。
あとは業務なりで日常的に使用していけば、覚えられそうですね。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?