Découvrez comment les courbes ROC et l'AUC évaluent la performance des classificateurs en IA/ML, en optimisant le TPR par rapport au FPR pour des tâches telles que la détection de fraude et le diagnostic médical.
Une courbe ROC (Receiver Operating Characteristic) est une représentation graphique utilisée pour évaluer les performances d'un modèle de classification binaire. modèle de classification binaire. Elle visualise le compromis entre le taux de vrais positifs (TPR) et le taux de faux positifs (FPR) pour différents seuils de classification. positif (TPR) et le taux de faux positifs (FPR) pour différents seuils de classification. Dans l'apprentissage l'apprentissage machine (ML), cette courbe est est fondamentale pour évaluer la capacité d'un modèle à distinguer deux classes, telles que "spam" par rapport à "non spam" ou "malade". spam" contre "pas de spam" ou "malade" contre "sain". En traçant ces taux, la courbe ROC fournit une vue d'ensemble de la capacité de diagnostic d'un modèle, allant au-delà des mesures à un seul chiffre comme la précision, qui peuvent être trompeuses si elles sont utilisées seules. qui peuvent être trompeuses isolément.
Pour interpréter correctement une courbe ROC, il est essentiel de comprendre les deux paramètres représentés sur ses axes :
La courbe est générée en faisant varier le seuil de confiance du classificateur de 0 à 1. seuil de confiance du classificateur de 0 à 1. Chaque point de la courbe ROC représente une paire sensibilité/spécificité correspondant à un seuil de décision particulier. point de la courbe ROC représente une paire sensibilité/spécificité correspondant à un seuil de décision particulier. A diagonale allant du bas à gauche au haut à droite représente un classificateur aléatoire sans capacité prédictive (pile ou face), alors qu'une (pile ou face), tandis qu'une courbe qui s'incline fortement vers le coin supérieur gauche indique un modèle très performant.
Les courbes ROC sont largement utilisées dans divers secteurs d'activité pour optimiser les seuils de décision pour le déploiement de modèles. pour le déploiement de modèles.
Pour tracer une courbe ROC, vous avez besoin des probabilités prédites pour la classe positive plutôt que des étiquettes finales de la classe.
finales. L'exemple suivant montre comment extraire ces probabilités à l'aide d'une fonction
YOLO11 à partir du modèle de classification de l
ultralytics l'emballage.
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}")
Une fois ces probabilités obtenues pour un ensemble de données de test, des bibliothèques telles que Scikit-learn peuvent être pour calculer les valeurs FPR et TPR nécessaires pour tracer la courbe.
Bien que la courbe ROC soit un outil puissant, il est utile de la distinguer des concepts d'évaluation connexes :
Pour les tâches impliquant la détection d'objets, des mesures telles que précision moyenne (mAP) sont généralement utilisées, bien que les courbes ROC restent pertinentes pour la composante de classification sous-jacente de ces modèles. La compréhension de ces distinctions permet aux développeurs de choisir la bonne métrique pour leurs défis spécifiques en matière de vision par ordinateur (CV). spécifiques de la vision par ordinateur (VA).