Erfahren Sie, wie ROC-Kurven und AUC die Klassifikatorleistung in KI/ML bewerten und TPR vs. FPR für Aufgaben wie Betrugserkennung und medizinische Diagnose optimieren.
Eine Receiver-Operating-Characteristic-Kurve (ROC-Kurve) ist eine grafische Darstellung, die zur Bewertung der Leistung eines binären Klassifikationsmodells. Sie visualisiert den Kompromiss zwischen der Wahr-Positiv-Rate (TPR) und der Falsch-Positiv Rate (FPR) bei verschiedenen Klassifikationsschwellenwerten. In maschinellem Lernen (ML) ist diese Kurve beim maschinellen Lernen (ML) von grundlegender Bedeutung, um zu beurteilen, wie gut ein Modell zwischen zwei Klassen unterscheiden kann, z. B. zwischen "Spam" und "kein Spam" oder "krank" versus "gesund". Durch die Darstellung dieser Werte bietet die ROC-Kurve die ROC-Kurve einen umfassenden Überblick über die Diagnosefähigkeit eines Modells und geht damit über Einzelkennzahlen wie Genauigkeit, die isoliert betrachtet irreführend sein können.
Um eine ROC-Kurve richtig zu interpretieren, ist es wichtig, die beiden auf ihren Achsen aufgetragenen Metriken zu verstehen:
Die Kurve wird erzeugt, indem die Vertrauensschwelle des Klassifikators von 0 bis 1. Jeder Punkt auf der ROC-Kurve stellt ein Empfindlichkeit/Spezifität-Paar dar, das einer bestimmten Entscheidungsschwelle entspricht. A diagonale Linie von unten links nach oben rechts steht für einen Zufallsklassifikator ohne Vorhersagekraft (Münzwurf). Münzwurf), während eine Kurve, die sich steil zur linken oberen Ecke hin verjüngt, ein leistungsstarkes Modell darstellt.
ROC-Kurven werden in vielen Branchen eingesetzt, um die Entscheidungsschwellen für die Einsatz von Modellen.
Um eine ROC-Kurve darzustellen, benötigen Sie die vorhergesagten Wahrscheinlichkeiten für die positive Klasse und nicht nur die endgültigen Klassen
Etiketten. Das folgende Beispiel zeigt, wie man diese Wahrscheinlichkeiten mit Hilfe eines
YOLO11 Klassifikationsmodell aus dem
ultralytics Paket.
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}")
Sobald diese Wahrscheinlichkeiten für einen Testdatensatz ermittelt sind, können Bibliotheken wie Scikit-learn verwendet werden verwendet werden, um die FPR- und TPR-Werte zu berechnen, die für die Darstellung der Kurve benötigt werden.
Obwohl die ROC-Kurve ein leistungsfähiges Instrument ist, ist es hilfreich, sie von verwandten Bewertungskonzepten zu unterscheiden:
Für Aufgaben der Objekterkennung sind Metriken wie Mittlere durchschnittliche Präzision (mAP) verwendet, obwohl ROC-Kurven für die zugrunde liegende Klassifizierungskomponente dieser Modelle relevant bleiben. Das Verständnis dieser Unterscheidungen stellt sicher, dass die Entwickler die richtige Metrik für ihre spezifischen Herausforderungen des Computer Vision (CV).