Erfahren Sie, wie Sie die Receiver Operating Characteristic (ROC)-Kurve zur Bewertung binärer Klassifikatoren verwenden können. Entdecken Sie die Kompromisse zwischen TPR und FPR mit Ultralytics .
Die Receiver Operating Characteristic (ROC)-Kurve ist ein grundlegendes grafisches Werkzeug zur Bewertung der Leistung von binären Klassifizierungsmodellen. Im Bereich des maschinellen Lernens (ML) visualisiert sie den Kompromiss zwischen der Sensitivität und der Spezifität eines Modells über alle möglichen Entscheidungsschwellen hinweg. Im Gegensatz zu Einzelfallmetriken wie der Genauigkeit, die bei einem unausgewogenen Datensatz irreführend sein können, bietet die ROC-Kurve einen umfassenden Überblick darüber, wie sich ein Klassifikator verhält, wenn die Kriterien für die Identifizierung positiver Instanzen mehr oder weniger streng werden. Diese Visualisierung ist für Ingenieure, die überwachte Lerntechniken einsetzen, um den optimalen Betriebspunkt für ihren spezifischen Anwendungsfall zu bestimmen, von entscheidender Bedeutung.
Um eine ROC-Kurve zu verstehen, muss man sich die beiden Parameter ansehen, die gegeneinander aufgetragen sind: die True Positive Rate (TPR) und die False Positive Rate (FPR).
Die Kurve veranschaulicht eine dynamische Beziehung: Wenn Sie die Konfidenzschwelle senken, um mehr positive Fälle zu erfassen (Erhöhung der TPR), erhöhen Sie zwangsläufig das Risiko, negative Fälle fälschlicherweise zu markieren (Erhöhung der FPR). Ein perfekter Klassifikator würde die obere linke Ecke des Diagramms erreichen, was eine Sensitivität von 100 % und 0 % Fehlalarme bedeutet. Ein Modell, das zufällige Vermutungen anstellt, würde als diagonale Linie von links unten nach rechts oben dargestellt werden. Die Gesamtleistung wird oft durch die Fläche unter der Kurve (AUC) zusammengefasst, wobei ein Wert von 1,0 Perfektion bedeutet.
Die Entscheidung, wo der Schwellenwert auf einer ROC-Kurve festgelegt werden soll, hängt vollständig von den Kosten der Fehler in einer bestimmten Branchenanwendung ab.
Um eine ROC-Kurve zu zeichnen, benötigen Sie die rohen Vorhersagewahrscheinlichkeiten und nicht nur die endgültigen Klassenbezeichnungen. Das folgende Beispiel verwendet das hochmoderne YOLO26-Modell, um Klassifizierungswerte zu generieren.
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}")
Sobald diese Wahrscheinlichkeiten für einen Validierungssatz gesammelt sind, können Entwickler Bibliotheken wie Scikit-learn verwenden, um die Kurvenpunkte zu berechnen. Für die Verwaltung von Datensätzen und die Verfolgung dieser Metriken im Zeitverlauf bietet die Ultralytics integrierte Tools für die Modellbewertung und -bereitstellung.
Es ist wichtig, die ROC-Kurve von anderen Bewertungsinstrumenten zu unterscheiden: