はじめに
前回は、分類モデル評価の基礎として
Confusion Matrix(混同行列) と TP / TN / FP / FN について整理しました。
今回は、その Confusion Matrix をもとに計算される代表的な評価指標である
- accuracy
- precision
- recall
について整理します。
分類モデルでは、単に「正解率が高いかどうか」だけでは、モデルの良し悪しを正しく判断できないことがあります。
特に、不正検知、スパム検知、医療診断、異常検知のようなケースでは、
- 誤検知を減らしたいのか
- 見逃しを減らしたいのか
- 全体としてどれくらい当たっているのか
によって、重視すべき指標が変わります。
本記事では、分類問題でよく使われる
- Accuracy
- Precision
- Recall
を、初心者にも分かりやすく整理します。
🎯 対象読者
- 分類モデルの評価指標を整理したい方
- accuracy / precision / recall の違いが曖昧な方
- Confusion Matrix を学んだあと、次の指標を理解したい方
- AWS の AI / ML 系資格を勉強している方
- 不正検知、スパム検知、医療診断、異常検知の評価を理解したい方
🧩 まず結論:3つの指標は見ているポイントが違う
accuracy、precision、recall は、すべて分類モデルを評価するための指標です。
ただし、それぞれ見ている観点が違います。
| 指標 | 見ていること | 一言で言うと |
|---|---|---|
| Accuracy | 全体の中でどれだけ正解したか | 全体の正解率 |
| Precision | Positive と予測したものがどれだけ正しかったか | 予測の信頼性 |
| Recall | 実際の Positive をどれだけ見つけられたか | 見逃しの少なさ |
覚え方は以下です。
Accuracy = 全体でどれくらい当たったか
Precision = Positive と言ったものがどれくらい正しいか
Recall = 本当の Positive をどれくらい拾えたか
この違いを理解しておくと、試験問題でもかなり判断しやすくなります。
📊 前提:Confusion Matrix をもう一度確認する
accuracy、precision、recall は、以下の4つをもとに計算します。
| 実際 \ 予測 | Positive と予測 | Negative と予測 |
|---|---|---|
| 実際は Positive | TP | FN |
| 実際は Negative | FP | TN |
それぞれの意味は以下です。
| 項目 | 意味 |
|---|---|
| TP | 本当の Positive を Positive と予測できた |
| TN | 本当の Negative を Negative と予測できた |
| FP | 本当は Negative なのに Positive と予測した |
| FN | 本当は Positive なのに Negative と予測した |
この4つを理解しておくと、評価指標の意味が自然に理解できます。
✅ Accuracy(正解率)とは?
Accuracy は、
全体の予測のうち、どれだけ正しく予測できたか を表す指標です。
計算式
Accuracy = (TP + TN) / 全体
もう少し正確に書くと、以下のようになります。
Accuracy = (TP + TN) / (TP + TN + FP + FN)
つまり、Positive も Negative も含めて、
全体としてどれくらい当たったかを見る指標です。
🧪 Accuracy の例
例えば、100件のデータがあり、そのうち90件を正しく予測できたとします。
正解数:90件
全体:100件
この場合、
Accuracy = 90 / 100 = 90%
になります。
とても分かりやすい指標なので、最初に見る評価指標としてよく使われます。
⚠️ Accuracy の注意点:不均衡データに弱い
Accuracy は分かりやすい一方で、
不均衡データでは misleading になりやすい という大きな注意点があります。
例えば、不正取引検知を考えます。
全体のうち、正常取引が 99%、不正取引が 1% だとします。
このとき、モデルがすべてを「正常」と予測した場合でも、
正常取引 99% は当たる
不正取引 1% は全部見逃す
となり、accuracy は 99% になります。
一見すると非常に高精度に見えますが、
実際には不正取引を1件も検知できていません。
つまり、不正検知モデルとしては役に立たない可能性があります。
📌 Accuracy が向いている場面
Accuracy は、以下のような場面では使いやすいです。
| 場面 | 理由 |
|---|---|
| クラスの割合が比較的バランスしている | 全体の正解率が意味を持ちやすい |
| 誤判定のコストが大きく偏っていない | FP と FN を同じように扱いやすい |
| まず全体感を見たい | 直感的に理解しやすい |
ただし、クラスの偏りが大きい場合は、
accuracy だけで判断しないことが重要です。
🎯 Precision(適合率)とは?
Precision は、
モデルが Positive と予測したもののうち、実際に Positive だった割合 を表します。
計算式
Precision = TP / (TP + FP)
つまり、モデルが「これは Positive です」と言ったものが、
どれくらい信頼できるかを見る指標です。
一言で言うと
Precision = Positive 予測の信頼性
🧪 Precision の例
例えば、モデルが10件を「不正取引」と予測したとします。
そのうち、実際に不正取引だったのが8件で、
残り2件は正常取引だったとします。
TP = 8
FP = 2
この場合、
Precision = 8 / (8 + 2) = 80%
です。
これは、モデルが「不正」と判断した10件のうち、8件は本当に不正だったという意味です。
📌 Precision が重要な場面
Precision が重要なのは、
誤検知(FP)を減らしたい場面 です。
例えば、以下のようなケースです。
- 正常なメールをスパム扱いしたくない
- 正常なユーザーを不正ユーザー扱いしたくない
- 問題ない取引を止めたくない
- 不要なアラートを大量に出したくない
Precision が低いと、Positive と判定したものの中に間違いが多くなります。
つまり、モデルの Positive 判定を信頼しづらくなります。
🧪 Precision を重視する例:スパムメール検知
スパムメール検知では、普通のメールを誤ってスパム扱いすると大きな問題になります。
例えば、重要な業務メールが迷惑メールフォルダに入ってしまうと、
ユーザーにとって非常に困ります。
このようなケースでは、
普通のメールをスパム扱いしない
= FP を減らしたい
= Precision を重視
という考え方になります。
もちろんスパムを見逃すことも問題ですが、
「通常メールを誤って消す・隠す」ことの影響が大きい場合は precision が重要です。
🚨 Recall(再現率)とは?
Recall は、
実際に Positive だったもののうち、モデルがどれだけ Positive として見つけられたか を表します。
計算式
Recall = TP / (TP + FN)
つまり、本当に見つけるべき Positive を、
どれくらい見逃さずに拾えたかを見る指標です。
一言で言うと
Recall = 見逃しの少なさ
🧪 Recall の例
例えば、実際には10件の不正取引があったとします。
そのうち、モデルが7件を不正取引として検知でき、
3件を見逃したとします。
TP = 7
FN = 3
この場合、
Recall = 7 / (7 + 3) = 70%
です。
これは、本当に存在した不正取引10件のうち、7件を検知できたという意味です。
📌 Recall が重要な場面
Recall が重要なのは、
見逃し(FN)を減らしたい場面 です。
例えば、以下のようなケースです。
- 疾患を見逃したくない
- 不正取引を見逃したくない
- セキュリティ攻撃を見逃したくない
- 重大な異常を見逃したくない
- 解約しそうな顧客を見逃したくない
Recall が低いと、本当に検知すべき対象を見逃してしまいます。
特に、見逃しによる損失やリスクが大きい場合は、recall が非常に重要になります。
🧪 Recall を重視する例:医療診断
医療診断では、病気の可能性がある人を見逃すことが大きな問題になります。
例えば、実際には病気があるのに「問題なし」と判定してしまうと、
治療の機会を逃す可能性があります。
このようなケースでは、
病気の人を見逃さない
= FN を減らしたい
= Recall を重視
という考え方になります。
同じように、不正検知やセキュリティ検知でも、
重大な対象を見逃したくない場合は recall が重要になります。
⚖️ Precision と Recall の違い
Precision と Recall は、どちらも Positive に関係する指標ですが、見ている方向が違います。
| 指標 | 分母 | 見ていること |
|---|---|---|
| Precision | TP + FP | Positive と予測したものの中で、どれだけ正しいか |
| Recall | TP + FN | 実際の Positive の中で、どれだけ見つけられたか |
言い換えると、
Precision = モデルの Positive 判定がどれだけ信用できるか
Recall = 本当の Positive をどれだけ拾えたか
です。
🧭 Precision と Recall のトレードオフ
Precision と Recall は、両方を同時に最大化するのが難しい場合があります。
例えば、不正検知で、少しでも怪しいものをすべて不正として検知するようにすると、
見逃しは減るため recall は上がりやすくなります。
しかし、その分、正常な取引まで不正と判断する可能性が増えるため、
precision は下がることがあります。
逆に、本当に確実なものだけを不正と判定するようにすると、
precision は上がりやすくなります。
しかし、怪しいが確信度が低いものを見逃す可能性があるため、
recall は下がることがあります。
イメージ
厳しく Positive 判定する → Precision は上がりやすい / Recall は下がりやすい
広く Positive 判定する → Recall は上がりやすい / Precision は下がりやすい
このバランスをどう取るかは、ユースケースによって変わります。
☁️ AWS 試験でよく出るユースケース
AWS の AI / ML 系試験では、accuracy、precision、recall は、
単純な計算問題というよりも、ユースケース判断として問われることがあります。
特に以下のような場面は意識しておきたいです。
| ユースケース | 重視しやすい指標 | 理由 |
|---|---|---|
| 不正検知 | Recall または Precision | 見逃しと誤検知のどちらを重視するかによる |
| スパム検知 | Precision | 通常メールをスパム扱いしたくない |
| 医療診断 | Recall | 病気を見逃したくない |
| 推薦システム | Precision | 提案した商品がユーザーに合っていることが重要 |
| 異常検知 | Recall | 重大な異常を見逃したくない |
問題文で、
見逃しを最小化したい
とあれば、recall を意識します。
誤検知を減らしたい
とあれば、precision を意識します。
データがバランスしていて、全体の正解率を見たい
とあれば、accuracy が使いやすいです。
👨💻 実務目線で見ると
実務では、評価指標を選ぶときに、
「どの間違いがビジネス上より困るのか」を考える必要があります。
例えば、不正検知では、
- 正常な取引を止めるとユーザー体験が悪くなる
- 不正取引を見逃すと金銭的損失が出る
という2つの問題があります。
どちらをより重く見るかによって、precision を重視するのか、recall を重視するのかが変わります。
また、医療診断では見逃しのリスクが非常に大きいため、
多少誤検知が増えても recall を重視する場合があります。
このように、評価指標は単なる数式ではなく、
ビジネス要件やリスクとセットで考えるもの です。
🧠 ここは特に覚えたいポイント
覚え方 1
Accuracy = 全体でどれくらい当たったか
覚え方 2
Precision = Positive と予測したものがどれくらい正しいか
= 誤検知を減らしたいときに重要
覚え方 3
Recall = 実際の Positive をどれくらい見つけたか
= 見逃しを減らしたいときに重要
覚え方 4
不均衡データでは Accuracy だけを見ない
✅ まとめ
今回は、分類モデルの代表的な評価指標である
- accuracy
- precision
- recall
について整理しました。
重要なポイントは以下です。
- accuracy は、全体の中でどれだけ正解したかを見る指標
- precision は、Positive と予測したものがどれだけ正しかったかを見る指標
- recall は、実際の Positive をどれだけ見つけられたかを見る指標
- 不均衡データでは、accuracy だけを見ると判断を誤ることがある
- 誤検知を減らしたい場合は precision が重要
- 見逃しを減らしたい場合は recall が重要
- どの指標を重視するかは、ユースケースとビジネス要件によって変わる
分類モデルを評価するときは、単に「正解率が高い」と見るのではなく、
何を間違えると困るのか まで考えることが大切です。
📌 次回予告
次回は、precision と recall の両方を考慮する評価指標である
- F1 score
について整理します。
特に、不均衡データで accuracy だけでは判断しにくい場合に、
F1 score がどのように役立つのかを分かりやすく整理します。