ROC曲線とAUCがAI/MLにおける分類器のパフォーマンスをどのように評価し、不正検出や医療診断などのタスクでTPR対FPRを最適化するかを学びます。
ROC曲線(Receiver Operating Characteristic)は、2値分類モデルの性能を評価するために使用されるグラフ表現である。 二値分類モデルの性能を評価するために使用されるグラフ表現です。これは、さまざまな分類しきい値にわたる真陽性率(TPR)と偽陽性率(FPR)の間のトレードオフを視覚化します。 (FPR)のトレードオフを可視化します。機械学習(ML)では 機械学習(ML)では、この曲線は 機械学習(ML)において、この曲線は、モデルが「スパム」対「スパムでない」、「病気」対「病気でない」のような2つのクラスをどの程度区別できるかを評価するための基本的なものである。 "スパム "対 "スパムでない"、"病気 "対 "健康 "など。これらの割合をプロットすることで、ROC曲線 は、モデルの診断能力を包括的に示すものであり、精度のような単数値の指標を超えたものである。 単独では誤解を招きかねないaccuracyのような単一の数値指標を超えるものです。
ROC曲線を正しく解釈するには、その軸にプロットされた2つの指標を理解することが不可欠である:
この曲線は 曲線は、分類器の信頼しきい値を0から1まで変化させることによって生成される。ROC曲線上の各点は ROC曲線上の各点は、特定の判定しきい値に対応する感度/特異度のペアを表す。A 左下から右上に向かう斜めの線は、予測スキルのないランダムな分類器(コイントス トス)を表し、左上に向かって急峻に曲がる曲線は、高性能モデルを表す。
ROC曲線は、モデル展開のための決定しきい値を最適化するために、様々な業界で広く利用されている。 モデル展開に広く利用されている。
ROC曲線をプロットするには、最終的なクラス・ラベルだけでなく、正のクラスの予測確率が必要です。
ラベルが必要である。次の例では,これらの確率を
YOLO11 の分類モデルである。
ultralytics パッケージで提供される。
from ultralytics import YOLO
# Load a pretrained YOLO11 classification model
model = YOLO("yolo11n-cls.pt")
# Run inference on an image to get prediction results
results = model("path/to/image.jpg")
# Access the probability distribution for all classes
# These scores are necessary inputs for calculating ROC and AUC
probs = results[0].probs.data
print(f"Class probabilities: {probs}")
テストデータセットに対してこれらの確率が得られると、次のようなライブラリが利用できる。 のようなライブラリを のようなライブラリを使用して、曲線のプロットに必要な FPR と TPR の値を計算することができる。
ROC曲線は強力なツールであるが、関連する評価概念と区別することが有用である:
物体検出を含むタスクでは、以下のようなメトリクスが使用されます。 平均平均精度 のようなメトリクスが一般的に使用されますが、ROC カーブは、これらのモデルの基本的な分類コンポーネントに引き続き関連します。 このような違いを理解することで、開発者は特定のコンピュータ・ビジョン(CV)の課題に適したメトリックを選択することができます。 コンピュータ・ビジョン(CV)の課題に適したメトリックを選択することができます。


