Receiver Operating Characteristic (ROC) Curve
Apprends à utiliser la courbe ROC (Receiver Operating Characteristic) pour évaluer les classifieurs binaires. Explore les compromis TPR vs FPR avec Ultralytics YOLO26.
La courbe ROC (Receiver Operating Characteristic) est un outil graphique fondamental utilisé pour évaluer les performances des modèles de classification binaire. Dans le domaine du machine learning (ML), elle visualise le compromis entre la sensibilité et la spécificité d'un modèle à travers tous les seuils de décision possibles. Contrairement aux mesures à valeur unique comme l'accuracy, qui peuvent être trompeuses si un jeu de données est déséquilibré, la courbe ROC offre une vue complète du comportement d'un classificateur à mesure que les critères d'identification des instances positives deviennent plus ou moins stricts. Cette visualisation est essentielle pour les ingénieurs utilisant des techniques d'apprentissage supervisé afin de déterminer le point de fonctionnement optimal pour leur cas d'utilisation spécifique.
Link to this sectionInterprétation des axes et des compromis#
Pour comprendre une courbe ROC, il est nécessaire d'examiner les deux paramètres représentés l'un par rapport à l'autre : le taux de vrais positifs (TPR) et le taux de faux positifs (FPR).
- Taux de vrais positifs (TPR) : Souvent appelé Recall ou sensibilité, cette mesure sur l'axe des y indique la proportion d'observations positives réelles que le modèle a correctement identifiées. Un TPR élevé signifie que le système manque rarement une cible.
- Taux de faux positifs (FPR) : Représenté sur l'axe des x, il correspond au rapport des instances négatives incorrectement classées comme positives, également connu sous le nom de « fausse alerte ».
La courbe illustre une relation dynamique : à mesure que tu abaisses le seuil de confidence pour capturer plus de cas positifs (augmentant le TPR), tu augmentes invariablement le risque de signaler incorrectement des cas négatifs (augmentant le FPR). Un classificateur parfait atteindrait le coin supérieur gauche du graphique, indiquant 100 % de sensibilité et 0 % de fausses alertes. Un modèle qui ferait des suppositions aléatoires apparaîtrait sous la forme d'une ligne diagonale allant du bas-gauche vers le haut-droite. La performance globale est souvent résumée par l'Area Under the Curve (AUC), où une valeur de 1,0 représente la perfection.
Link to this sectionApplications concrètes#
La décision du seuil à définir sur une courbe ROC dépend entièrement du coût des erreurs dans une application industrielle spécifique.
-
Diagnostics médicaux : Dans l'IA dans la santé, et plus précisément pour des tâches comme la détection de tumeurs dans l'analyse d'images médicales, le coût de l'omission d'un cas positif (un faux négatif) est potentiellement mortel. Par conséquent, les praticiens choisissent souvent un seuil qui maximise le TPR, même si cela entraîne un FPR plus élevé, ce qui signifie que davantage de patients en bonne santé pourraient initialement être signalés pour des tests complémentaires.
-
Détection de la fraude financière : Lorsque l'IA dans la finance est utilisée pour surveiller les transactions par carte bancaire, les banques doivent équilibrer la sécurité et l'expérience client. Si le système est trop sensible (TPR élevé), il pourrait bloquer des cartes légitimes (FPR élevé), frustrant ainsi les utilisateurs. Les analystes utilisent la courbe ROC pour trouver un seuil équilibré qui détecte la plupart des fraudes tout en maintenant les faux positifs à un minimum acceptable.
Link to this sectionGénérer des probabilités pour l'analyse ROC#
Pour tracer une courbe ROC, tu as besoin des probabilités de prédiction brutes plutôt que des simples étiquettes de classe finales. L'exemple suivant utilise le modèle de pointe YOLO26 pour générer des scores de classification.
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}")Une fois ces probabilités collectées pour un jeu de validation, les développeurs peuvent utiliser des bibliothèques comme Scikit-learn pour calculer les points de la courbe. Pour gérer les jeux de données et suivre ces mesures au fil du temps, l'Ultralytics Platform propose des outils intégrés pour l'évaluation et le déploiement de modèles.
Link to this sectionROC vs concepts connexes#
Il est important de distinguer la courbe ROC d'autres outils d'évaluation :
- vs. courbe Précision-Rappel (PR) : Alors que la courbe ROC trace le TPR par rapport au FPR, la courbe Précision-Rappel trace la précision par rapport au rappel. La courbe PR est généralement préférée lorsque le jeu de données est fortement déséquilibré (par exemple, lors de la détection d'anomalies rares), car la courbe ROC peut parfois présenter une vision trop optimiste dans de tels scénarios.
- vs. matrice de confusion : Une matrice de confusion fournit un instantané de la performance à un seul seuil spécifique. En revanche, la courbe ROC visualise la performance à travers tous les seuils possibles, ce qui en fait un outil plus large pour l'analyse de la modélisation prédictive avant qu'une règle de décision finale ne soit établie.






