二値分類器を評価するための受信者動作特性(ROC)曲線の活用方法を学びます。Ultralytics 真陽性率(TPR)と偽陽性率(FPR)のトレードオフを探求します。
受信者動作特性(ROC)曲線は、二値分類モデルの性能を評価するために用いられる基本的な図形ツールである。機械学習(ML)の領域において、これはあらゆる可能な決定閾値にわたってモデルの感度と特異度のトレードオフを可視化する。 データセットの不均衡により誤解を招く可能性がある精度のような単一値指標とは異なり、ROC曲線は陽性事例を識別する基準が厳しくなるにつれて分類器がどのように振る舞うかを包括的に示す。この可視化は、教師あり学習技術を利用するエンジニアが特定のユースケースに最適な動作点を決定するために不可欠である。
ROC曲線を理解するには、互いにプロットされた2つのパラメータ、すなわち真陽性率(TPR)と偽陽性率(FPR)を考察する必要がある。
この曲線は動的な関係を示している:より多くの陽性例を捕捉するために 信頼閾値を下げると(真陽性率 TPR を増加させると)、 必ず陰性例を誤ってフラグ付けするリスクが増加する(偽陽性率 FPR を増加させる)。 完全な分類器はグラフの左上隅に位置し、100%の感度と0%の誤警報を示す。 ランダムな推測を行うモデルは左下から右上への対角線として表される。 全体的な性能は曲線下面積(AUC)で要約されることが多く、 値1.0が完全性を示す。
ROC曲線上の閾値設定の決定は、特定の産業アプリケーションにおける誤りのコストに完全に依存する。
ROC曲線を作成するには、最終的なクラスラベルだけでなく、生の予測確率が必要です。以下の例では、最先端のYOLO26モデルを使用して分類スコアを生成します。
from ultralytics import YOLO
# Load a pretrained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Run inference to get probability distribution
results = model("bus.jpg")
# Access the probability score for the predicted class
# These continuous scores are required to calculate TPR/FPR at different thresholds
print(f"Top Class Index: {results[0].probs.top1}")
print(f"Confidence Score: {results[0].probs.top1conf:.4f}")
検証セットに対してこれらの確率を収集した後、開発者はScikit-learnなどのライブラリを使用して曲線上のポイントを計算できます。データセットの管理やこれらの指標の経時的な追跡には、Ultralytics モデル評価とデプロイメントのための統合ツールを提供します。
ROC曲線を他の評価ツールと区別することが重要です: