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

Area Under the Curve (AUC)

AUCはROC曲線を0から1までの単一スコアに変換し、ランダムに選んだ陽性例を分類器がランダムな陰性例より上位にランク付けする確率を表します。ROC AUCとPR AUCをコードとともに解説します。

曲線下面積 (AUC) は、考えられるすべての判定しきい値について、二値分類器が2つのクラスをどれほど適切に分離するかを要約する指標です。機械学習では、AUCはほぼ常に受信者動作特性曲線 (ROC)の下面積を指し、ROC AUCまたはAUROCとも表記されます。その値は、ランダムに選んだ正例のスコアが、ランダムに選んだ負例のスコアより高くなる確率に等しくなります。AUC 1.0はすべての正例がすべての負例を上回ること、0.5は順位付けが偶然を超えないこと、0.5未満は順位が逆転していることを意味します。スコアの順位だけに依存するため、AUCはしきい値を選ぶ前にモデルを評価でき、医療診断モデル、信用スコアリング、不正検知の標準的な指標となっています。

AUCの計算方法#

ROC曲線は、判定しきい値を最高スコアから最低スコアへ変化させたときの、再現率にあたる真陽性率を、誤って陽性と判定された負例の割合である偽陽性率に対してプロットします。すべてのスコアより高いしきい値では何も検出されず、(0, 0)になります。すべてのスコアより低いしきい値ではすべてが検出され、(1, 1)になります。AUCは、通常、台形則を使って、これらの点を結ぶ線の下の面積として計算します。

すべての正例と負例を比較し、正例の順位が高ければ1、同順位なら0.5、低ければ0を各ペアに与えて数えても、同じ値が得られます。この値はROC AUCと厳密に一致し、統計学者には正規化されたMann-WhitneyのU統計量、医学研究者には一致度またはc統計量として知られています。信用リスクのチームは代わりにジニ係数を報告することが多く、その値は2 × AUC − 1です。

ペア単位の見方によって、AUCの主な特性が分かります。確率の二乗や、二値分類器のロジットへの温度スケーリングなど、スコアの順位を保つ変換ではAUCは変化しません。そのため、AUCが優れていても確率のキャリブレーションが大きく崩れている場合があります。キャリブレーションにはブライアスコアなどの別の指標が必要です。

不均衡データにおけるROC AUCとPR AUC#

ROC AUCはクラス比率に依存しません。真陽性率は正例のみ、偽陽性率は負例のみを対象として計算するためです。しかし、正例がまれな場合、この特性は弱点になります。100件中1件が正例のとき、偽陽性率が5%なら、実際の正例1件につき約5件の誤警報が発生しますが、ROC曲線への影響はわずかです。適合率再現率曲線下面積 (PR AUC) は、通常、平均適合率 (AP)として要約され、適合率を再現率に対してプロットするため、こうした誤警報が直接反映されます。そのため、不均衡データではROC曲線より有益です。以下のscikit-learnスクリプトでは、1つのモデルを両方の方法でスコア化します。

from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import average_precision_score, roc_auc_score
from sklearn.model_selection import train_test_split

# Imbalanced binary problem: 1 positive per 100 samples
X, y = make_classification(n_samples=20_000, weights=[0.99], flip_y=0, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, stratify=y, random_state=0)

# Score the test set with a simple classifier
model = LogisticRegression(max_iter=1000).fit(X_train, y_train)
scores = model.predict_proba(X_test)[:, 1]

# The same scores summarized by the areas under two different curves
print(f"Positives in test set: {y_test.sum()} of {len(y_test)}")
print(f"ROC AUC: {roc_auc_score(y_test, scores):.3f}")
print(f"PR AUC (average precision): {average_precision_score(y_test, scores):.3f}")

10,000件のテストサンプル中に正例が100件ある場合、モデルのROC AUCは0.911ですが、平均適合率はわずか0.462です。この2つの値は基準値も異なります。ランダムな順位付けでは、クラスの不均衡に関係なくROC AUCが0.5となりますが、平均適合率は正例率に等しく、この例では0.01です。

多クラスAUCと物体検出#

ROC AUCは2クラスの場合に定義されます。クラスがそれ以上ある場合、scikit-learnのroc_auc_scoreは、各クラスを他のすべてのクラスと比較するone-vs-rest AUC、またはすべてのクラスペアを対象とするone-vs-one AUCを、マクロ平均または有病率で重み付けした平均で算出します。

物体検出では、負例が物体を含まないすべてのボックス位置となり、その集合は実質的に無限で、意味のある偽陽性率を定義できないため、ROC曲線を使用できません。検出指標では、代わりに適合率再現率曲線の下面積を使います。UltralyticsのYOLO26の検証では、各クラスの平均適合率を適合率再現率包絡線の下面積として計算し、COCO評価と同じく再現率の101点でサンプリングします。そして各面積を平均して、IoUしきい値0.50~0.95における平均適合率 (mAP)を算出します。IoU

  • 正解率:1つのしきい値における正しい予測の割合を測定します。不均衡データでは、すべての正例を見逃していても優れた値になる場合があります。AUCはすべてのしきい値にわたる順位付けを評価します。
  • F1スコア:1つのしきい値における適合率と再現率を組み合わせるため、1つの動作点を評価します。一方、AUCはすべての動作点を要約します。
  • 混同行列:1つのしきい値における真陽性、偽陽性、真陰性、偽陰性の数を示します。ROC曲線の各点は、1つの混同行列を2つの率で要約したものです。
  • 平均適合率:適合率再現率曲線の下面積です。正例がまれな場合に一般的に使用される要約指標であり、mAPの主要な構成要素です。
  • 部分AUC:偽陽性率を0~0.1に限定するなど、範囲を絞った領域の面積です。すべての誤警報に対して追加検査が行われる大規模スクリーニングプログラムのように、誤警報率を低く抑える必要がある場合に使用します。

ソリューションを見る

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

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

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の未来を一緒に築きましょう!

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