F1スコア(F1 score)とは、機械学習の分類モデルを評価するときに、適合率(Precision)と再現率(Recall)のバランスを見るための指標です。
0〜1の値で表され、1に近いほど適合率と再現率の両方が高いことを意味します。特に「正常データは多いが、検出したいデータは少ない」といった、クラスの数に偏りがある分類問題で利用されます。
ただし、F1スコアが高ければ、どの分類モデルでも必ず優秀というわけではありません。適合率と再現率のどちらを重視すべきかは目的によって変わるためです。
この記事では、F1スコアの意味や計算方法、Accuracyとの違い、どんな場面で使うのかを初心者向けに分かりやすく解説します。
F1スコアとは?
F1スコアとは、適合率(Precision)と再現率(Recall)の調和平均を取った評価指標です。
簡単にいえば、「正しいと予測したものが本当に正しいか」と「本当に見つけるべきものをどれだけ見つけられたか」の両方を考慮します。
F1スコアは一般に0〜1で表されます。
- 1に近い:適合率と再現率の両方が高い
- 0に近い:どちらか、または両方が低い
- 1:適合率と再現率がともに完全な状態
たとえば、迷惑メールを判定するAIを考えてみましょう。
迷惑メールと判定したメールがほとんど本物の迷惑メールだったとしても、多数の迷惑メールを見逃していれば十分なモデルとはいえません。一方、すべての迷惑メールを検出できても、普通のメールまで大量に迷惑メール扱いしてしまうと実用上困ります。
F1スコアは、この2種類の性能をまとめて確認するために使われます。

適合率と再現率の基本
この指標を理解するには、まず適合率と再現率を押さえておく必要があります。
どちらも分類モデルの評価指標ですが、見ているポイントが異なります。
適合率(Precision)とは?
適合率とは、モデルが「正しい」と判定したもののうち、実際に正しかった割合です。
たとえば、AIが10件のメールを「迷惑メール」と判定し、そのうち8件が本当に迷惑メールだった場合、適合率は80%です。
適合率が高いほど、誤って陽性と判定する「誤検知」が少ないと考えられます。
特に、「間違って陽性判定すると困る」という場面で重要な指標です。
再現率(Recall)とは?
再現率とは、本当に見つけるべき対象のうち、モデルがどれだけ正しく見つけられたかを表す割合です。
たとえば、本当の迷惑メールが20件あり、そのうちAIが15件を見つけられた場合、再現率は75%です。
再現率が高いほど、本来見つけるべき対象を見逃しにくいと考えられます。
そのため、「見逃しをなるべく減らしたい」場面では再現率が重要になります。
適合率と再現率の違い
両者の違いを整理すると、次のようになります。
| 指標 | 確認していること | 重視する場面 |
|---|---|---|
| 適合率(Precision) | 陽性と判定したものがどれだけ正しいか | 誤検知を減らしたい |
| 再現率(Recall) | 本当の陽性をどれだけ発見できたか | 見逃しを減らしたい |
| F1スコア | 適合率と再現率のバランス | 両方をバランスよく評価したい |
適合率と再現率には、一方を改善するともう一方が低下する場合があります。
そこで、両方のバランスを1つの数値で確認したいときにF1スコアが役立ちます。
F1スコアの計算方法
F1スコアは、適合率と再現率の調和平均を使って計算します。
計算式は次のとおりです。
F1スコア = 2 ×(適合率 × 再現率)÷(適合率 + 再現率)
英語表記では次のように表されます。
F1 = 2 × (Precision × Recall) ÷ (Precision + Recall)
実際にF1スコアを計算してみる
適合率が0.8、再現率が0.5だったとしましょう。
計算式に当てはめると、
2 ×(0.8 × 0.5)÷(0.8 + 0.5)≒ 0.615
となります。
つまり、F1スコアは約0.62です。
単純に0.8と0.5の平均を取ると0.65ですが、F1スコアではそれより低くなります。
なぜ普通の平均ではなく「調和平均」を使う?
理由は、適合率または再現率の一方だけが極端に高いモデルを過大評価しにくくするためです。
たとえば、
- 適合率:0.9
- 再現率:0.1
というモデルを考えます。
片方は非常に高いものの、もう片方は低い状態です。F1スコアでは低い方の値の影響を強く受けるため、「全体としてバランスがよいモデル」とは評価されにくくなります。
つまり、F1スコアは適合率と再現率の両方が高くなければ高得点になりにくい指標なのです。

F1スコアとAccuracy(正解率)の違い
F1スコアと混同しやすい指標が、Accuracy(正解率)です。
Accuracyは、全予測のうち何件を正しく分類できたかを表します。一方、F1スコアは適合率と再現率を組み合わせた指標です。
| 指標 | 主に見るもの | 特徴 |
|---|---|---|
| Accuracy | 全体でどれだけ正解したか | 分かりやすい |
| Precision | 陽性予測の正確さ | 誤検知に注目 |
| Recall | 陽性の発見率 | 見逃しに注目 |
| F1スコア | PrecisionとRecallのバランス | 不均衡な分類問題でも役立つ |
データに偏りがあるとAccuracyだけでは判断しにくい
たとえば、1,000件のデータのうち、990件が正常で10件だけが異常だったとします。
ここで、すべてを「正常」と予測するモデルを作ると、990件は正解します。
Accuracyは、
990 ÷ 1,000 = 99%
です。
数字だけを見ると非常に優秀に見えます。
しかし、このモデルは10件ある異常データを1件も発見できません。
このように、クラスの数に大きな偏りがある場合、Accuracyだけではモデルの実用性を正しく判断できないことがあります。
F1スコアは適合率と再現率を使うため、こうした場面で重要な評価指標の一つになります。
どんなときにF1スコアを使う?
主に、分類問題で適合率と再現率の両方を重視したい場面で利用します。
迷惑メールの分類
迷惑メール判定では、迷惑メールを見逃しすぎても困ります。一方で、通常メールを大量に迷惑メール扱いするのも問題です。
適合率と再現率の両方を確認することで、判定性能のバランスを評価できます。
不正や異常の検出
不正取引やシステム異常などは、通常データに比べて発生件数が少ないケースがあります。
そのため、単純なAccuracyが高くても、肝心の異常を検出できていない可能性があります。
こうした不均衡な分類問題では、F1スコアが評価指標の候補になります。
文書・画像などの分類
文章をカテゴリ分けするモデルや、画像内の対象を分類するモデルなどでもF1スコアは利用されます。
特に、カテゴリごとのデータ量に差がある場合は、Accuracyに加えてF1スコアを確認すると、モデルの特徴を捉えやすくなります。

F1スコアを見るときの注意点
F1スコアは便利な指標ですが、万能ではありません。
目的に応じてPrecisionやRecallなど、ほかの指標と組み合わせて確認することが重要です。
F1スコアだけでモデルの良し悪しを決めない
F1スコアは、適合率と再現率を同程度に重視する指標です。
しかし、実際の用途では「誤検知」と「見逃し」の影響が同じとは限りません。
たとえば、見逃しをできるだけ避けたい用途であれば、F1スコアよりRecallを重視したほうが適切な場合があります。
反対に、誤検知の影響が大きい場合はPrecisionを重点的に確認します。
判定のしきい値によってスコアは変わる
分類モデルでは、「何%以上なら陽性と判定するか」といったしきい値を設定する場合があります。
このしきい値を変えると、PrecisionとRecallが変化するため、F1スコアも変化します。
そのため、単にF1スコアの数字を比較するだけでなく、どのような条件・しきい値で計算された数字なのかも確認する必要があります。
複数クラスでは平均方法にも注意する
分類対象が2種類ではなく、3種類以上ある「マルチクラス分類」でもF1スコアは利用できます。
ただし、その場合はクラスごとのF1スコアをどのようにまとめるかによって値が変わります。
代表的な方法には次のものがあります。
- Macro F1:各クラスを同じ重みで平均する
- Micro F1:全クラスの判定結果をまとめて計算する
- Weighted F1:各クラスのデータ数を考慮して平均する
そのため、「F1スコアが0.8だった」という数字だけではなく、どの平均方法を使用したのかも確認することが大切です。
F1スコアに関するよくある質問
F1スコアは高いほど良いですか?
基本的には、1に近いほど適合率と再現率のバランスがよいと評価できます。
ただし、用途によってPrecisionとRecallの重要度は異なります。そのため、F1スコアだけで最終判断するのではなく、個別の指標も確認しましょう。
F1スコアが0.8なら優秀ですか?
0.8という数字だけでは、一律に「優秀」とは判断できません。
データセットの難易度、クラスの偏り、比較対象となるモデル、求められる精度などによって評価基準が異なるためです。
同じ条件で複数モデルを比較したり、実務上必要なPrecision・Recallを満たしているか確認したりすることが重要です。
F1スコアとAccuracyはどちらを使えばよいですか?
データのクラスが比較的均等で、すべての正解・不正解を同じように評価したい場合は、Accuracyが分かりやすい指標です。
一方、陽性と陰性のデータ数に大きな偏りがあり、誤検知と見逃しの両方を確認したい場合は、F1スコアが役立ちます。
実際には、どちらか一つに限定せず、目的に合わせて複数の指標を確認することが一般的です。
F1スコアは生成AIの評価にも使いますか?
F1スコアは、もともと分類問題で広く使われる評価指標です。
生成AIでも、回答結果を分類問題として評価できるタスクや、一部の自然言語処理ベンチマークなどで利用されることがあります。
ただし、文章生成の自然さ、事実性、創造性などをF1スコアだけで評価できるわけではありません。生成AIの品質評価では、評価したい能力に応じた別の指標や人による評価も必要です。
まとめ
F1スコアとは、適合率(Precision)と再現率(Recall)のバランスをまとめて評価するための指標です。
ポイントを整理すると、次のようになります。
- F1スコアは適合率と再現率の調和平均
- 値は基本的に0〜1で、1に近いほど両者のバランスがよい
- データ数に偏りがある分類問題で役立つ
- Accuracyが高くても重要な対象を見逃している場合がある
- F1スコアだけでなくPrecisionやRecallも確認する
- マルチクラスではMacro・Micro・Weightedなどの平均方法にも注意する
「全体で何%正解したか」だけでは分からないモデルの性能を確認したいとき、F1スコアは有力な判断材料になります。
一方で、実務では誤検知と見逃しのどちらが重要かを先に考え、その目的に合わせて評価指標を選ぶことが大切です。
