ROC Curve
Ein Diagramm zur Bewertung von Klassifikatoren – zeigt das Verhältnis von True Positive Rate zu False Positive Rate bei verschiedenen Schwellenwerten.
Die Fläche unter der ROC-Kurve – ein einzelner Wert zwischen 0 und 1, der die Gesamtqualität eines Klassifikators misst.
AUC fasst die ROC-Kurve in einer Zahl zusammen: Wie gut trennt das Modell positive von negativen Beispielen?
AUC = 1.0: Perfekte Trennung
AUC = 0.5: Zufälliges Raten
AUC < 0.5: Schlechter als Zufall (Vorzeichen umdrehen!)
Interpretation:
AUC = P(score(positiv) > score(negativ))
"Wenn ich zufällig ein positives und ein negatives
Beispiel wähle, wie wahrscheinlich rankt das Modell
das positive höher?"
from sklearn.metrics import roc_auc_score
y_true = [0, 0, 1, 1, 1, 0, 1, 0]
y_scores = [0.1, 0.4, 0.35, 0.8, 0.7, 0.3, 0.9, 0.2]
auc = roc_auc_score(y_true, y_scores)
print(f"AUC: {auc:.3f}") # 0.875
from sklearn.metrics import roc_auc_score
# One-vs-Rest für Multi-Class
auc_ovr = roc_auc_score(y_true, y_proba, multi_class='ovr')
# One-vs-One
auc_ovo = roc_auc_score(y_true, y_proba, multi_class='ovo') AUC ist wie eine Schulnote für deinen Klassifikator: 1.0 = perfekt, 0.5 = Zufall (durchgefallen), dazwischen = je höher desto besser.
Wert zwischen 0 und 1 (0.5 = Zufall)
Unabhängig vom gewählten Schwellenwert
Wahrscheinlichkeit, dass positives Beispiel höher gerankt wird
Modellvergleich
Welches Modell ist insgesamt besser?
Feature-Selektion
Welche Features verbessern AUC?
Hyperparameter-Tuning
AUC als Optimierungsziel
0.5 = Zufall, 0.7-0.8 = akzeptabel, 0.8-0.9 = gut, 0.9+ = exzellent. Aber: Kontext wichtig!
AUC-ROC bei balancierten Daten. AUC-PR (Precision-Recall) bei stark unbalancierten Daten besser geeignet.