F1スコアが機械学習モデルの評価において精度と再現率をどのようにバランスさせるかを学びましょう。Ultralytics 性能を最適化し、精度を向上させる方法を発見しましょう。
F1スコアは機械学習における重要な性能指標であり、精度と再現率を単一の調和平均に統合する。データセットが不均衡である場合や、偽陽性・偽陰性が異なるコストを伴う場合の分類モデル評価に特に有用である。 単純な精度とは異なり、F1スコアはデータセットで特定のクラスが優勢な場合に誤った印象を与えかねない精度とは異なり、 関連するインスタンスを正しく識別しつつ誤りを最小化するモデルの能力について、よりバランスの取れた視点を提供します。 極端な値をペナルティ化することで、精度と再現率の両方が十分に高い場合にのみ高スコアが得られることを保証し、 医療診断から情報検索に至るまで幅広い分野で標準的な指標となっています。
多くの実世界シナリオでは、単純に正しい予測の割合(精度)を知るだけでは不十分です。 例えば、異常検出では正常ケースが異常をはるかに上回ります。 すべての入力に対して「正常」と予測するモデルは99%の精度を達成するかもしれませんが、 実際の問題を検出するには無意味です。F1スコアは、競合する二つの指標のバランスを取ることでこの問題を解決します:
精度を向上させると再現率が低下する傾向があり、その逆もまた然りであるため、F1スコアは最適なバランスポイントを見出す統一指標として機能する。これは、多様な条件下で堅牢な性能を確保するためにハイパーパラメータ最適化を用いてモデルを調整する際に極めて重要である。
F1スコアの有用性は、誤りのコストが重大となる様々な産業に及んでいる。
現代のコンピュータビジョンフレームワークは、これらの指標の計算を簡素化します。物体検出モデルのトレーニング時、 検証フェーズ中にF1スコアが自動的に計算されます。 Ultralytics これらの指標をリアルタイムチャートで可視化し、 ユーザーが異なる信頼度閾値に対する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スコアを最大化できます。