Area Under the Curve (AUC)
L’AUC résume une courbe ROC en un score compris entre 0 et 1 : la probabilité qu’un classificateur classe un exemple positif aléatoire au-dessus d’un exemple négatif aléatoire. Comparaison entre ROC AUC et PR AUC, avec du code.
L'aire sous la courbe (AUC) est une métrique qui résume la capacité d'un classificateur binaire à distinguer deux classes pour tous les seuils de décision possibles. En apprentissage automatique, AUC désigne presque toujours l'aire sous la courbe ROC (receiver operating characteristic), également notée ROC AUC ou AUROC. Sa valeur correspond à la probabilité que le modèle attribue un score supérieur à un exemple positif choisi au hasard plutôt qu'à un exemple négatif choisi au hasard. Une AUC de 1,0 signifie que tous les exemples positifs sont mieux classés que tous les négatifs ; 0,5 signifie que le classement ne dépasse pas le hasard ; une valeur inférieure à 0,5 signifie que le classement est inversé. Comme l'AUC dépend uniquement de l'ordre des scores, elle évalue un modèle avant que quiconque ne choisisse un seuil, ce qui en fait une métrique standard pour les modèles de diagnostic médical, l'évaluation du crédit et la détection de fraude.
Calcul de l'AUC#
La courbe ROC représente le taux de vrais positifs, c'est-à-dire le rappel, en fonction du taux de faux positifs — la proportion de négatifs signalés à tort — lorsque le seuil de décision passe du score le plus élevé au plus bas. Un seuil supérieur à tous les scores ne signale rien et correspond au point (0, 0) ; un seuil inférieur à tous les scores signale tout et correspond au point (1, 1). L'AUC est l'aire sous la ligne qui relie tous les points intermédiaires, généralement calculée par la méthode des trapèzes.
On obtient le même nombre en comptant les paires. La comparaison de chaque exemple positif à chaque exemple négatif, en attribuant 1 à une paire si le positif est mieux classé, 0,5 en cas d'égalité et 0 dans les autres cas, donne exactement la ROC AUC. Les statisticiens connaissent cette quantité sous le nom de statistique U de Mann-Whitney normalisée, et les chercheurs en médecine sous celui de concordance ou de statistique c. Les équipes chargées du risque de crédit publient souvent plutôt le coefficient de Gini, qui équivaut à 2 × AUC − 1.
L'approche par paires explique les principales propriétés de l'AUC. Toute transformation qui préserve l'ordre des scores, comme le calcul du carré des probabilités ou l'application d'une mise à l'échelle par température aux logits d'un classificateur binaire, laisse l'AUC inchangée. Un modèle peut donc présenter une excellente AUC et des probabilités très mal calibrées. Le calibrage nécessite une métrique distincte, comme le score de Brier.
ROC AUC et PR AUC sur des données déséquilibrées#
La ROC AUC ne dépend pas du ratio entre les classes, car le taux de vrais positifs est calculé uniquement sur les exemples positifs et le taux de faux positifs uniquement sur les négatifs. Cette propriété devient une faiblesse lorsque les exemples positifs sont rares. Avec 1 positif sur 100, un taux de faux positifs de 5 % produit environ cinq fausses alertes pour chaque vrai positif, tout en ne modifiant presque pas la courbe ROC. L'aire sous la courbe précision-rappel (PR AUC), généralement résumée par la précision moyenne (AP), représente la précision en fonction du rappel et met directement en évidence ces fausses alertes ; elle est donc plus informative que la courbe ROC sur des données déséquilibrées. Le script scikit-learn ci-dessous évalue un même modèle de ces deux façons :
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}")Avec 100 exemples positifs parmi 10 000 échantillons de test, le modèle atteint une ROC AUC de 0,911, mais une précision moyenne de seulement 0,462. Ces deux valeurs ont également des références différentes : un classement aléatoire obtient une ROC AUC de 0,5 quel que soit l'équilibre des classes, tandis que sa précision moyenne est égale au taux de positifs, soit 0,01 ici.
AUC multiclasse et détection d'objets#
La ROC AUC est définie pour deux classes. Pour un nombre supérieur, la fonction roc_auc_score de scikit-learn calcule la moyenne des AUC un contre tous — chaque classe étant comparée à toutes les autres — ou des AUC un contre un, calculées pour chaque paire de classes, avec une moyenne macro ou pondérée selon la prévalence.
La détection d'objets ne peut pas utiliser les courbes ROC, car les négatifs correspondent à tous les emplacements de boîte ne contenant aucun objet, un ensemble pratiquement illimité qui ne permet pas de définir un taux de faux positifs pertinent. Les métriques de détection utilisent plutôt les aires sous les courbes précision-rappel. La validation de YOLO26 dans Ultralytics calcule la précision moyenne de chaque classe comme l'aire sous son enveloppe précision-rappel, échantillonnée en 101 points de rappel comme dans l'évaluation COCO, puis calcule la moyenne de ces aires pour obtenir la précision moyenne (mAP) aux seuils IoU compris entre 0,50 et 0,95.
AUC et notions connexes#
- Exactitude : Mesure les prédictions correctes à un seul seuil et peut sembler excellente sur des données déséquilibrées tout en manquant tous les exemples positifs. L'AUC mesure le classement sur tous les seuils.
- Score F1 : Combine la précision et le rappel à un seul seuil et évalue donc un point de fonctionnement, tandis que l'AUC les résume tous.
- Matrice de confusion : Compte les vrais positifs, les faux positifs, les vrais négatifs et les faux négatifs à un seul seuil. Chaque point ROC résume une matrice de confusion sous la forme d'une paire de taux.
- Précision moyenne : Aire sous la courbe précision-rappel, généralement utilisée lorsque les exemples positifs sont rares et principal composant de mAP.
- AUC partielle : Aire calculée sur une plage restreinte de taux de faux positifs, comme de 0 à 0,1. Elle est utilisée lorsque seuls les faibles taux de fausses alertes sont acceptables, par exemple dans les grands programmes de dépistage où chaque fausse alerte entraîne un examen de suivi.










