<EbeneX/>
Mathematik Grundlagen · Updated 3. Juli 2026

ROC Curve

Definition

Ein Diagramm zur Bewertung von Klassifikatoren – zeigt das Verhältnis von True Positive Rate zu False Positive Rate bei verschiedenen Schwellenwerten.

Fortgeschritten 3 Min. Lesezeit EN: Receiver Operating Characteristic Curve

Einfach erklärt

Die ROC Curve zeigt, wie gut ein Klassifikator zwischen Klassen unterscheidet.

TPR (True Positive Rate) = TP / (TP + FN) = Recall
FPR (False Positive Rate) = FP / (FP + TN)

        1 │    ╭────────── Perfekt
          │   ╱
      TPR │  ╱  ← Gutes Modell
          │ ╱
          │╱.............. Zufall (Diagonale)
        0 └─────────────────
          0              1
                FPR

Technischer Deep Dive

ROC berechnen

from sklearn.metrics import roc_curve, roc_auc_score
import matplotlib.pyplot as plt

# Vorhersage-Wahrscheinlichkeiten
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]

# ROC Curve
fpr, tpr, thresholds = roc_curve(y_true, y_scores)

# Plot
plt.plot(fpr, tpr, label=f'AUC = {roc_auc_score(y_true, y_scores):.2f}')
plt.plot([0, 1], [0, 1], 'k--', label='Random')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.legend()

Optimalen Threshold finden

# Youden's J statistic: maximiert TPR - FPR
j_scores = tpr - fpr
best_idx = np.argmax(j_scores)
best_threshold = thresholds[best_idx]

Wie die Kurve entsteht

Die ROC-Kurve ist keine Funktion des Modells allein, sondern des Rankings seiner Scores. Man sortiert alle Beispiele absteigend nach vorhergesagtem Score und senkt den Schwellenwert schrittweise: Jedes Mal, wenn ein tatsächlich positives Beispiel neu als positiv klassifiziert wird, steigt die Kurve nach oben (TPR wächst); bei einem negativen Beispiel wandert sie nach rechts (FPR wächst). Ein Modell mit perfektem Ranking – alle Positiven vor allen Negativen – erzeugt daher zuerst nur Aufwärtsschritte und erreicht die obere linke Ecke.

Daraus folgt eine wichtige Eigenschaft: Die ROC-Kurve ist invariant gegenüber monotonen Transformationen der Scores. Ob ein Modell kalibrierte Wahrscheinlichkeiten oder unkalibrierte Scores liefert, ändert die Kurve nicht – sie bewertet ausschließlich die Reihenfolge.

ROC vs. Precision-Recall-Kurve

AspektROC-KurvePrecision-Recall-Kurve
AchsenFPR vs. TPRRecall vs. Precision
Nutzt True Negatives?Ja (in FPR)Nein
Bei starker Klassen-ImbalanceKann zu optimistisch wirkenZeigt Schwächen deutlicher
BaselineDiagonale (unabhängig von Klassenverteilung)Horizontale auf Höhe des Positiv-Anteils
Typischer EinsatzAusgewogene Klassen, ModellvergleichSeltene positive Klasse (Fraud, Anomalien)

Der Grund für den Unterschied: Bei sehr vielen Negativen bleibt die FPR selbst dann klein, wenn absolut gesehen viele False Positives entstehen – die riesige Zahl an True Negatives im Nenner verdeckt das Problem. Precision reagiert direkt auf jede falsch-positive Vorhersage und ist deshalb bei seltenen positiven Klassen die ehrlichere Perspektive.

Threshold-Wahl ist eine Business-Entscheidung

Youden’s J behandelt beide Fehlerarten als gleich teuer – das ist selten realistisch. Bei einem medizinischen Screening ist ein übersehener Krankheitsfall (False Negative) meist gravierender als eine unnötige Nachuntersuchung (False Positive); beim automatischen Sperren von Nutzerkonten ist es umgekehrt. In solchen Fällen wählt man den Punkt auf der Kurve, der die gewichteten Kosten minimiert, oder fixiert eine der beiden Raten (z. B. „FPR darf höchstens x betragen”) und maximiert die andere.

Typische Fehler in der Praxis

  • ROC auf harten Labels berechnen: roc_curve braucht Scores oder Wahrscheinlichkeiten (predict_proba), nicht die 0/1-Ausgabe von predict – sonst besteht die „Kurve” nur aus einem einzigen Punkt.
  • Threshold auf den Testdaten optimieren: Der Schwellenwert ist ein Hyperparameter und gehört auf einem Validierungsset bestimmt, nicht auf den finalen Testdaten.
  • Kurven ohne Konfidenz vergleichen: Bei kleinen Testsets sind ROC-Kurven verrauscht; Kreuzvalidierung oder Bootstrapping zeigen, ob ein Unterschied stabil ist.

ROC ist wie ein Regler zwischen 'alles als positiv markieren' und 'nichts als positiv markieren'. Die Kurve zeigt, wie gut dein Modell bei jeder Einstellung ist.

X-Achse: False Positive Rate (FPR)

Y-Achse: True Positive Rate (TPR/Recall)

Perfektes Modell: Kurve geht zur oberen linken Ecke

Modellvergleich

Welches Modell ist besser?

Schwellenwert-Wahl

Optimalen Cutoff finden

Imbalanced Data

Robuster als Accuracy

Wann ROC vs. Precision-Recall?

ROC bei balancierten Klassen. Precision-Recall bei stark unbalancierten (z.B. Fraud Detection mit 0.1% Positiven).

Was bedeutet die Diagonale?

Zufälliges Raten. Alles darüber ist besser als Zufall, darunter schlechter.

Dein persönliches Share-Bild für Instagram – 1080×1080px, bereit zum Posten.