F1-Score
F1スコアが適合率と再現率のバランスを取り、機械学習モデルを評価する方法を学べます。精度向上に向けてUltralytics YOLO26の性能を最適化する方法をご確認ください。
F1スコアは、適合率と再現率を単一の調和平均に統合する、機械学習における重要な性能指標です。データセットのクラスが不均衡である場合や、偽陽性と偽陰性のコストが異なる場合の分類モデルの評価に特に有用です。データセット内で1つのクラスが大半を占める場合に誤解を招く可能性がある単純な正解率とは異なり、F1スコアは、エラーを最小限に抑えながら関連するインスタンスを正しく識別するモデルの能力を、よりバランスよく評価できます。極端な値にペナルティを課すことで、適合率と再現率の両方が十分に高い場合にのみ高いスコアが得られるため、医療診断から情報検索まで、さまざまな分野で広く使用されている指標です。
機械学習でF1スコアが重要な理由#
現実の多くのシナリオでは、正しい予測の割合(正解率)を知るだけでは不十分です。たとえば、異常検知では、正常なケースが異常を大幅に上回ります。すべての入力に対して「正常」と予測するモデルは、99%の正解率を達成できるかもしれませんが、実際の問題の検出には役立ちません。F1スコアは、相反する2つの指標のバランスを取ることで、この問題に対処します。
- 適合率:陽性予測の品質を測定します。「モデルが陽性とラベル付けしたすべてのインスタンスのうち、実際に陽性だったのはいくつか」という問いに答える指標です。
- 再現率:陽性予測の量を測定します。「実際の陽性インスタンスのうち、モデルが正しく識別できたのはいくつか」という問いに答える指標です。
適合率を向上させると再現率が低下し、その逆も起こるというトレードオフが存在することが多いため、F1スコアは最適なバランスポイントを見つけるための統合指標として機能します。これは、さまざまな条件下で堅牢な性能を確保するために、ハイパーパラメータ最適化を使用してモデルを調整する際に重要です。
実世界での利用例#
F1スコアは、エラーのコストが大きいさまざまな業界で役立ちます。
- 医療診断:医療分野におけるAI、特に腫瘍検出などのタスクでは、偽陰性(腫瘍の見落とし)は生命を脅かします。一方、偽陽性(良性組織を異常として検出すること)は不要な不安を引き起こします。F1スコアは、研究者がYOLO26などのモデルを最適化し、誤警報で医師に過度な負担をかけずに、病気を見逃さない十分な感度をシステムに持たせるのに役立ちます。
- 情報検索と検索エンジン:検索エンジンや文書分類システムでは、関連性の評価にF1スコアを使用します。ユーザーは関連するすべての文書を確認したい(高い再現率)一方で、無関係な結果を大量に確認したいとは考えていません(高い適合率)。高いF1スコアは、検索エンジンが不要な情報で結果を埋め尽くすことなく、適切な情報を効果的に取得していることを示します。
- スパムフィルタリング:メールサービスでは、スパムを分類するためにテキスト分類を使用します。システムはスパムメールを検出する必要があります(再現率)が、重要な業務メールを迷惑メールとして分類してはなりません(適合率)。F1スコアは、これらのフィルターにおける主要なベンチマークです。
UltralyticsでF1スコアを計算する#
最新のコンピュータービジョンフレームワークでは、これらの指標の計算が簡単になっています。物体検出モデルのトレーニング時には、検証フェーズでF1スコアが自動的に計算されます。Ultralytics Platformでは、これらの指標をリアルタイムのチャートで可視化できるため、さまざまな信頼度しきい値に対するF1スコアの曲線を確認できます。
Python APIを使用して、F1スコアの構成要素を含む検証指標にアクセスする方法は次のとおりです。
from ultralytics import YOLO
# Load a pre-trained YOLO26 model
model = YOLO("yolo26n.pt")
# Validate the model on a dataset (metrics are computed automatically)
# This returns a validator object containing precision, recall, and mAP
metrics = model.val(data="coco8.yaml")
# Print the Mean Average Precision (mAP50-95), which correlates with F1 performance
print(f"mAP50-95: {metrics.box.map}")
# Access precision and recall arrays to manually inspect the balance
print(f"Precision: {metrics.box.p}")
print(f"Recall: {metrics.box.r}")F1スコアと関連指標の比較#
F1スコアと他の評価基準の違いを理解することは、プロジェクトに適したツールを選択するうえで不可欠です。
- 正解率との違い:正解率では、すべてのエラーを同等に扱います。F1スコアは、陽性クラス(対象となる少数派クラス)の性能に焦点を当てるため、不均衡なデータセットに適しています。
- mAPとの関係:平均適合率 (mAP)は、すべての信頼度しきい値における物体検出モデルの比較に使用される標準指標です。一方、F1スコアは、デプロイに適した最適な信頼度しきい値を決定するためによく使用されます。アプリケーションをデプロイする際には、F1曲線がピークに達するしきい値を選択できます。
- 混同行列:混同行列は、F1スコアの算出元となる生の件数(真陽性、偽陽性など)を示します。混同行列は詳細な情報を提供する一方で、F1スコアは迅速な比較に適した単一の要約統計量を提供します。
- ROC-AUC:曲線下面積 (AUC)は、すべてのしきい値における分離性能を測定します。F1スコアは、クラス分布が大きく偏っている場合(詐欺がまれな詐欺検出など)に、一般的にROC-AUCよりも適しています。
F1スコアを改善する#
モデルのF1スコアが低い場合は、いくつかの戦略が役立ちます。データ拡張によって陽性例の多様性を高めると、モデルの汎化性能を向上させることができます。堅牢な基盤モデルを使用した転移学習により、ネットワークは事前学習済みの特徴を活用できます。さらに、推論時に信頼度しきい値を調整することで、適合率と再現率のバランスを手動で変化させ、特定のユースケースにおけるF1スコアを最大化できます。









