Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Precision-Recall Curve

適合率-再現率曲線は、しきい値ごとの適合率を再現率に対してプロットし、モデルの性能と誤検知・見逃しのトレードオフを示します。

適合率-再現率曲線は、判定しきい値の変化に伴うモデルの適合率と再現率の変化を示すグラフです。横軸は再現率、縦軸は適合率です。各測定点はしきい値に対応し、モデルが検出する陽性ケースの数と、陽性予測の信頼性を示します。この曲線は、誤検知と見逃しのコストが異なる場合に、分類器や検出器を評価するのに役立ちます。

適合率-再現率曲線の仕組み#

適合率は、正しい陽性予測の割合です。TP / (TP + FP) で表されます。再現率は感度とも呼ばれ、実際の陽性のうち検出できた割合です。TP / (TP + FN) で表されます。TPは真陽性、FPは偽陽性、FNは偽陰性を意味し、これらは混同行列で集計される結果です。

予測スコアに対して信頼度のしきい値を変化させると、適合率と再現率のペアが得られます。しきい値を下げると、より多くの予測が対象となるため、再現率は上昇するか、変わらずに維持されます。正しい予測と誤った予測が対象に加わるにつれて、適合率はどちらの方向にも変化し、階段状の曲線になります。

Cyril Cleverdonは1962年のCranfieldレポートで再現率と関連性のプロットを導入し、適合率-再現率評価の情報検索における起源を確立しました。文書検索では、検索された関連文書が真陽性、検索された無関係な文書が偽陽性です。

曲線とベースラインの解釈#

再現率が1に近づいても高い適合率を維持する曲線は、性能が高いことを示します。曲線が交差する場合、モデルごとに異なる運用領域で優れた性能を発揮します。適合率が急激に低下する箇所は、予測を追加すると多くの誤検知が生じることを示します。

情報を持たないランダムな順位付けのベースラインは、陽性クラスの有病率、つまり陽性とラベル付けされた例の割合です。陽性が1%の場合、ベースラインの適合率は0.01です。有病率が変わると適合率も変わるため、評価対象の母集団も結果の一部となります。

受信者動作特性(ROC)曲線は、再現率を偽陽性率(FP / (FP + TN))に対してプロットします。TNは真陰性を意味します。適合率-再現率評価は、アラートのうち正しいものの割合を直接示すため、陽性がまれな場合に役立ちます。正解率は多数派クラスの影響を大きく受けることがあります。

運用しきい値の選択#

エラーコストに応じて、検証データ上の運用点を選択します。最低再現率を満たす必要がある場合は、条件を満たす点の中から適合率が最も高い点を選びます。最低適合率が必要な場合は、条件を満たす点の中から再現率が最も高い点を選びます。適合率と再現率の調和平均であるF1スコアを最大化すると、両方の指標が等しく重み付けされます。しきい値は、元のスコア、または適合率-信頼度プロットや再現率-信頼度プロットから決定します。

Ultralytics YOLOの予測では、スコア付き検出をフィルタリングするconfを使って、この選択を行えます。4枚のCOCO8検証画像を使ったYOLO26nのAcademy評価では、IoU 0.50において、confを0.10から0.25に上げると、人クラスの補間適合率/再現率は0.63/0.80から1.00/0.54に変化しました。誤検知が減る一方で、見逃す人物が増えました。

別のテストデータを評価する際は、選択したしきい値を固定してください。

Pythonで適合率-再現率曲線をプロットする#

この例では、同梱の画像とロジスティック回帰を使って、手書き数字の9とその他の数字を区別します。pip install scikit-learn matplotlibで依存関係をインストールし、scikit-learnの適合率-再現率プロットAPIを使用します。

import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import PrecisionRecallDisplay
from sklearn.model_selection import train_test_split

X, digits = load_digits(return_X_y=True)
y = digits == 9
X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, random_state=42)
model = LogisticRegression(max_iter=2000)
model.fit(X_train, y_train)
PrecisionRecallDisplay.from_estimator(model, X_test, y_test)
plt.savefig("precision_recall_curve.png", bbox_inches="tight")

保存されたプロットは、保留された数字画像について、達成可能な各再現率における適合率を示します。

物体検出と平均適合率#

物体検出では、予測されたバウンディングボックスが、同じクラスの未対応のアノテーション済み物体と、指定された積集合/和集合比(IoU)のしきい値以上で一致すると、真陽性としてカウントされます。重複を含む未対応の予測は、偽陽性としてカウントされます。各クラスに個別の曲線があり、IoUの要件は固定されています。

平均適合率(AP)は、再現率の範囲全体にわたる曲線を要約します。台形公式によるPR-AUCと、補間を行わないAPでは、積分方法が異なります。平均適合率(mAP)は、クラスごとのAP値を平均したものです。検出性能指標では、mAP50はIoU 0.50を使用し、mAP50–95は0.50から0.95まで0.05刻みの10個のIoUしきい値で平均します。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう