はじめに
前回は、分類モデルでよく使われる評価指標として
- accuracy
- precision
- recall
について整理しました。
今回は、その中でも precision と recall の両方を考慮する指標 である
F1 Score について整理します。
分類モデルでは、accuracy だけを見ると判断を誤ることがあります。
特に、不均衡データでは「全体の正解率」は高く見えても、実際に見つけたい対象をほとんど検知できていないケースがあります。
そのようなときに重要になるのが、
- Positive と予測したものがどれだけ正しいか
- 本当の Positive をどれだけ見逃さずに拾えているか
という2つの観点です。
F1 Score は、この2つをバランスよく見るための代表的な指標です。
🎯 対象読者
- F1 Score の意味を整理したい方
- precision と recall の違いは分かるが、F1 Score がまだ曖昧な方
- 不均衡データでどの評価指標を見るべきか知りたい方
- AWS の AI / ML 系資格を勉強している方
- 分類モデルの評価を実務目線で理解したい方
🧩 まず結論:F1 Score は Precision と Recall のバランスを見る指標
F1 Score は、簡単に言うと
precision と recall をまとめて評価するための指標 です。
| 指標 | 見ていること |
|---|---|
| Precision | Positive と予測したものがどれだけ正しいか |
| Recall | 実際の Positive をどれだけ見つけられたか |
| F1 Score | Precision と Recall のバランス |
一言で言うと、以下のように覚えると分かりやすいです。
F1 Score = Precision と Recall の総合評価
ただし、単純な平均ではなく、調和平均 という方法で計算されます。
📌 Precision と Recall を復習する
F1 Score を理解するために、まず precision と recall をもう一度確認します。
Precision
Precision = TP / (TP + FP)
Precision は、モデルが Positive と予測したもののうち、
実際に Positive だった割合です。
言い換えると、
Positive と言ったものがどれだけ信頼できるか
を見る指標です。
Recall
Recall = TP / (TP + FN)
Recall は、実際に Positive だったもののうち、
モデルがどれだけ Positive として見つけられたかを表します。
言い換えると、
本当の Positive をどれだけ見逃さなかったか
を見る指標です。
⚖️ なぜ F1 Score が必要なのか?
Precision と recall は、どちらも重要です。
しかし、ユースケースによっては、どちらか一方だけを見ると不十分な場合があります。
例えば、不正検知を考えます。
Precision だけ高い場合
モデルが「これは不正です」と言ったものはかなり正しい。
しかし、実際の不正取引の多くを見逃している。
この場合、precision は高くても recall が低い状態です。
誤検知は少ない
しかし、見逃しが多い
Recall だけ高い場合
実際の不正取引はかなり拾えている。
しかし、正常な取引も大量に不正と判定している。
この場合、recall は高くても precision が低い状態です。
見逃しは少ない
しかし、誤検知が多い
このように、precision と recall のどちらか片方だけを見ると、
モデルの実力を正しく判断できない場合があります。
そこで、両方のバランスを見る指標として F1 Score を使います。
🧮 F1 Score の計算式
F1 Score は、precision と recall の調和平均です。
F1 Score = 2 × Precision × Recall / (Precision + Recall)
この式だけ見ると少し難しく感じるかもしれませんが、
最初は以下のように理解すれば十分です。
F1 Score は、Precision と Recall のどちらか一方が低いと下がりやすい
つまり、precision だけ高くても、recall が低ければ F1 Score は高くなりません。
逆に、recall だけ高くても、precision が低ければ F1 Score は高くなりません。
🧪 F1 Score の例
例えば、ある分類モデルで以下の結果だったとします。
Precision = 0.8
Recall = 0.7
この場合、F1 Score は以下のように計算できます。
F1 Score = 2 × 0.8 × 0.7 / (0.8 + 0.7)
= 1.12 / 1.5
≒ 0.747
つまり、F1 Score は約 0.75 です。
Precision も recall も比較的高いため、F1 Score もある程度高くなります。
📉 片方だけ低いと F1 Score は下がる
F1 Score の重要なポイントは、
precision と recall のどちらか一方が低いと、スコアも下がりやすい ことです。
例えば、以下のようなケースを考えます。
| Precision | Recall | F1 Score のイメージ |
|---|---|---|
| 高い | 高い | 高い |
| 高い | 低い | 低くなりやすい |
| 低い | 高い | 低くなりやすい |
| 低い | 低い | 低い |
つまり、F1 Score は「どちらか一方だけ良ければよい」という指標ではありません。
Precision と recall の両方がある程度高いときに、F1 Score も高くなります。
🧭 F1 Score が向いている場面
F1 Score は、特に以下のような場面で役立ちます。
| 場面 | 理由 |
|---|---|
| 不均衡データ | accuracy だけでは判断しづらい |
| Precision と recall の両方が重要 | 片方だけ高くても不十分 |
| モデル比較をしたい | 複数モデルを1つの指標で比較しやすい |
| Positive クラスを重視したい | 見つけたい対象に注目しやすい |
特に、不正検知、異常検知、スパム検知、医療診断のように、
Positive クラスが少ないケースでは、F1 Score が参考になりやすいです。
⚠️ F1 Score だけ見ればよいわけではない
F1 Score は便利ですが、万能ではありません。
なぜなら、F1 Score は precision と recall のバランスを見る指標であり、
ビジネス上どちらの間違いがより重大かまでは判断してくれないからです。
例えば、医療診断では、病気を見逃すことが非常に重大です。
この場合は、F1 Score よりも recall を特に重視することがあります。
一方で、スパム検知では、通常メールを誤ってスパム扱いすることが大きな問題になる場合があります。
この場合は、precision を重視することがあります。
つまり、F1 Score は便利な総合指標ですが、
最終的にはユースケースに応じて precision / recall も個別に確認する必要があります。
☁️ AWS 試験での見られ方
AWS の AI / ML 系試験では、F1 Score は特に
不均衡データ とセットで出てくることが多いです。
例えば、以下のような問題文では F1 Score を意識します。
データセットにクラス不均衡がある
Precision と recall の両方を考慮したい
モデルの分類性能を総合的に比較したい
この場合、accuracy よりも F1 Score の方が適切なことがあります。
📌 Accuracy と F1 Score の違い
Accuracy と F1 Score の違いも整理しておきます。
| 指標 | 見ていること | 注意点 |
|---|---|---|
| Accuracy | 全体の正解率 | 不均衡データでは高く見えやすい |
| F1 Score | precision と recall のバランス | FP / FN の重みの違いまでは反映しない |
例えば、不正取引が全体の1%しかない場合、
すべてを「正常」と予測しても accuracy は高くなる可能性があります。
しかし、そのモデルは不正取引を見つけられていないため、
F1 Score は低くなります。
このような理由から、不均衡データでは accuracy だけでなく、
precision、recall、F1 Score を確認することが重要です。
👨💻 実務目線で見ると
実務では、F1 Score はモデル比較の指標として使いやすいです。
例えば、複数のモデルがある場合、
| モデル | Precision | Recall | F1 Score |
|---|---|---|---|
| Model A | 高い | 低い | 中程度 |
| Model B | 低い | 高い | 中程度 |
| Model C | 高い | 高い | 高い |
このように見ると、単に accuracy だけを見るよりも、
分類性能のバランスを把握しやすくなります。
ただし、最終判断では必ず業務要件を確認する必要があります。
- 見逃しを絶対に避けたいのか
- 誤検知をできるだけ減らしたいのか
- 多少の誤検知を許容しても検知率を上げたいのか
このような条件によって、F1 Score より recall を重視した方がよい場合もありますし、
precision を重視した方がよい場合もあります。
🧠 ここは特に覚えたいポイント
覚え方 1
F1 Score = Precision と Recall のバランスを見る指標
覚え方 2
Precision か Recall のどちらか一方が低いと、F1 Score も下がりやすい
覚え方 3
不均衡データでは Accuracy だけではなく、F1 Score も確認する
覚え方 4
F1 Score は便利だが、最終的にはユースケースに応じて Precision / Recall も見る
✅ まとめ
今回は、分類モデルの評価指標である F1 Score について整理しました。
重要なポイントは以下です。
- F1 Score は、precision と recall のバランスを見る指標
- F1 Score は precision と recall の調和平均で計算される
- precision だけ高くても、recall が低いと F1 Score は下がりやすい
- recall だけ高くても、precision が低いと F1 Score は下がりやすい
- 不均衡データでは、accuracy より F1 Score が参考になる場合がある
- ただし、F1 Score だけでなく、ビジネス要件に応じて precision / recall も個別に見る必要がある
分類モデルの評価では、1つの指標だけで判断するのではなく、
何を見逃してはいけないのか、何を誤検知してはいけないのか を考えることが大切です。
📌 次回予告
次回は、機械学習モデルに入れるデータを整えるための重要テーマである
- 欠損値処理
- 正規化 / 標準化
- カテゴリ変数のエンコード
- 外れ値処理
- 特徴量選択
について整理します。
モデル精度を上げるうえで、データ前処理は非常に重要な工程です。