F1-Score
F1スコアが機械学習モデルを評価するために、適合率と再現率をどのようにバランスさせるか学びましょう。Ultralytics YOLO26のパフォーマンスを最適化して精度を向上させる方法を発見してください。
F1-Scoreは、適合率(precision)と再現率(recall)を単一の調和平均に統合する、機械学習における重要なパフォーマンス指標です。これは、データセットが不均衡な場合や、偽陽性(false positive)と偽陰性(false negative)のコストが異なる場合に、分類モデルを評価するのに特に有用です。あるクラスがデータセットを支配している場合に誤解を招く可能性がある単純な正解率(accuracy)とは異なり、F1-Scoreは、エラーを最小限に抑えつつ関連するインスタンスを正確に特定するモデルの能力を、よりバランスの取れた視点で提供します。極端な値をペナルティとして扱うことで、適合率と再現率の両方が十分に高い場合にのみ高いスコアが得られるようになり、医療診断から情報検索に至るまで、幅広い分野で標準的な指標となっています。
Link to this section機械学習におけるF1-Scoreの重要性#
多くの現実世界のシナリオでは、単純に正解率(accuracy)の割合を知るだけでは不十分です。例えば、異常検知において、正常なケースは異常なケースよりも圧倒的に多く存在します。すべての入力に対して「正常」と予測するモデルは99%の正解率を達成するかもしれませんが、実際の問題を検出する役には立ちません。F1-Scoreは、以下の2つの競合する指標をバランスさせることでこれに対処します。
- 適合率 (Precision): これは、陽性の予測の質を測定します。「モデルが陽性とラベル付けしたすべてのインスタンスのうち、実際に陽性だったものはどれくらいか?」という問いに答えます。
- 再現率 (Recall): これは、陽性の予測の量を測定します。「実際の陽性インスタンス全体ののうち、モデルはどれくらいを正しく識別できたか?」という問いに答えます。
多くの場合トレードオフが存在するため(適合率を改善すると再現率が低下する傾向があり、その逆も同様です)、F1-Scoreは最適なバランス点を見つけるための統一された指標として機能します。これは、さまざまな条件下で堅牢なパフォーマンスを確保するために、ハイパーパラメータ最適化を使用してモデルを調整する際に不可欠です。
Link to this section実社会での応用#
F1-Scoreの有用性は、エラーのコストが大きいさまざまな業界に広がっています。
- Medical Diagnostics: In AI in healthcare, specifically for tasks like tumor detection, a false negative (missing a tumor) is life-threatening, while a false positive (flagging benign tissue) causes unnecessary anxiety. The F1-Score helps researchers optimize models like YOLO26 to ensure that the system is sensitive enough to catch diseases without overwhelming doctors with false alarms.
- 情報検索と検索: 検索エンジンや文書分類システムは、F1-Scoreを使用して関連性を評価します。ユーザーはすべての関連文書を見たい(高い再現率)一方で、無関係な結果に目を通したくはありません(高い適合率)。高いF1-Scoreは、エンジンが不要な情報を含めずに正しい情報を効果的に取得していることを示しています。
- Spam Filtering: Email services use text classification to segregate spam. The system must catch spam emails (recall) but crucially must not label important work emails as junk (precision). The F1-Score serves as the primary benchmark for these filters.
Link to this sectionUltralyticsを使用したF1-Scoreの計算#
最新のコンピュータビジョンフレームワークは、これらの指標の計算を簡素化します。物体検出モデルをトレーニングする際、F1-Scoreは検証フェーズ中に自動的に計算されます。Ultralytics Platformはこれらの指標をリアルタイムのグラフで可視化し、ユーザーはさまざまな信頼度(confidence)のしきい値に対するF1-Scoreの曲線を確認できます。
Python APIを使用して、F1-Scoreのコンポーネントを含む検証指標にアクセスする方法は以下の通りです。
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}")Link to this sectionF1-Scoreと関連指標の比較#
プロジェクトに適したツールを選択するには、F1-Scoreが他の評価基準とどのように異なるかを理解することが不可欠です。
- 正解率(Accuracy)との違い: 正解率はすべてのエラーを等しく扱います。F1-Scoreは不均衡なデータセットにおいて、陽性クラス(関心のある少数クラス)のパフォーマンスに焦点を当てるため、より優れています。
- mAPとの関連: 平均適合率(mAP)は、すべての信頼度のしきい値にわたって物体検出モデルを比較するための標準です。しかし、F1-Scoreは多くの場合、デプロイメントのための最適な信頼度のしきい値を決定するために使用されます。アプリケーションをデプロイするために、F1曲線がピークに達するしきい値を選択することができます。
- 混同行列(Confusion Matrix): 混同行列は、F1-Scoreが導き出される元となる生のカウント数(真陽性、偽陽性など)を提供します。行列は詳細な情報を提供しますが、F1-Scoreは迅速な比較のための単一の要約統計量を提供します。
- ROC-AUC: ROC曲線下面積 (AUC)は、すべてのしきい値にわたる分離可能性を測定します。F1-Scoreは、クラス分布が著しく偏っている場合(例えば、不正検知において不正が稀である場合など)、一般的にROC-AUCよりも優先されます。
Link to this sectionF1-Scoreを向上させる方法#
モデルのF1-Scoreが低い場合、いくつかの戦略が役立ちます。データ拡張は陽性の例の多様性を高め、モデルの汎化性能を向上させるのに役立ちます。堅牢な基盤モデルからの転移学習を採用することで、ネットワークは事前に学習された特徴を活用できるようになります。さらに、推論中に信頼度のしきい値を調整することで、特定のユースケースに合わせてF1-Scoreを最大化するために、適合率と再現率のバランスを手動でシフトさせることができます。






