ROC Curve

Wie Teams Modell-Rankings über viele Schwellenwerte vergleichen und die endgültige Entscheidungsgrenze bewusst nach Fehlerfolgen wählen.

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

Fortgeschritten2 Min Lesezeit

Erklärung starten

Auf einen Blick

3 Punkte

  1. X-Achse: False Positive Rate (FPR)
  2. Y-Achse: True Positive Rate (TPR/Recall)
  3. Perfektes Modell: Kurve geht zur oberen linken Ecke

Sofortantwort

ROC Curve einfach erklärt

Visualisiert Klassifikator-Performance über alle Schwellenwerte.

Kurz gesagt
X-Achse: False Positive Rate (FPR)
Typischer Einsatz
Modellvergleich, Schwellenwert-Wahl, Imbalanced Data
Wichtig zu wissen
Perfektes Modell: Kurve geht zur oberen linken Ecke

ROC Curve im Überblick

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

Technisch betrachtet

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.

Schritt für Schritt

ROC-Kurven richtig in Entscheidungen übersetzen

Die ROC-Kurve bewertet die Trennfähigkeit eines Rankings über Schwellenwerte. Die Wahl einer produktiven Grenze bleibt eine fachliche und betriebliche Entscheidung.

  1. Geeignete Scores und Testdaten verwenden

    01

    Die Kurve braucht kontinuierliche Modell-Scores auf unabhängigen, repräsentativen Daten – keine bereits harten Klassenlabels.

    wahre Labels + Scores → ROC-Punkte
  2. Kurve gegen Baseline vergleichen

    02

    Prüfe, wie stark das Modell positives und negatives Verhalten besser trennt als eine zufällige Reihenfolge.

    TPR gegen FPR ↔ Zufallsdiagonale
  3. Klassenverteilung berücksichtigen

    03

    Bei seltenen positiven Fällen ergänzt eine Precision-Recall-Perspektive die ROC-Sicht sinnvoll.

    Imbalance → ROC + Precision-Recall
  4. Schwelle anhand von Fehlerfolgen wählen

    04

    Setze konkrete Grenzen für Fehlalarme oder übersehene Fälle und wähle einen Punkt, der zum Einsatzprozess passt.

    Kosten / Kapazität → tolerierte Rate → Schwelle
  5. Stabilität und Drift prüfen

    05

    Kurven und Schwellen werden über Zeit und relevante Segmente beobachtet, damit veränderte Daten nicht unbemerkt die Entscheidung verschieben.

    neue Daten → Re-Evaluation → Anpassung

Konkretes Beispiel

Beispiel: Priorisierung von Qualitätsprüfungen

Ein Modell ordnet Fällen einen Score zu, damit ein begrenztes Team die auffälligsten zuerst prüfen kann.

Kapazitätsfrage

Wie viele Fehlalarme kann das Team bearbeiten, damit möglichst viele relevante Fälle früh erkannt werden?

Betriebliche Schwelle

Die ROC-Kurve zeigt mögliche Trade-offs, während die verfügbare Prüfkapazität und die Folgen übersehener Fälle die endgültige Schwelle bestimmen.

Die Kurve hilft beim Vergleich von Rankings; die korrekte Schwelle entsteht erst aus dem realen Prozess und seinen Fehlerkosten.

Einordnung

Vorteile und Grenzen

Das spricht dafür

  • Schwellenübergreifender Vergleich: Die Trennfähigkeit verschiedener Modelle wird nicht auf eine Grenze reduziert.
  • Klare Visualisierung: Die Beziehung zwischen erkannten positiven Fällen und Fehlalarmen wird sichtbar.
  • Gute Ergänzung: ROC und AUC unterstützen frühe Modellvergleiche auf einheitlichen Testdaten.

Das solltest du beachten

  • Keine Einsatzentscheidung allein: Die produktive Schwelle folgt nicht automatisch aus der Kurve.
  • Bei seltenen Fällen begrenzt: Viele True Negatives können die False Positive Rate optisch harmlos wirken lassen.
  • Keine Kalibrierungsaussage: Eine gute ROC-Kurve sagt nichts darüber, ob Scores verlässliche Wahrscheinlichkeiten sind.
Vertiefung · für Fortgeschrittene

Vom Score-Ranking zur Schwellenentscheidung

Die ROC-Kurve zeichnet mögliche Entscheidungen ab; der Betrieb wählt daraus eine Grenze anhand von Konsequenzen und Kapazität.

Wissenskarte

True Positive Rate im Verhältnis zur False Positive Rate über viele Schwellenwerte.

Die Kurve macht technische Optionen sichtbar; die verantwortete Auswahl verbindet sie mit dem tatsächlichen Anwendungskontext. ROC-Kurve gliedert sich in: Testlabels, Modellscores, TPR / Recall, FPR, Fehlerfolgen, Threshold.

01Einsatzbereiche

Wann ist ROC Curve sinnvoll?

Geeignet für

  • ModellvergleichWelches Modell ist besser?
  • Schwellenwert-WahlOptimalen Cutoff finden
  • Imbalanced DataRobuster als Accuracy

↑ Inhalt

Merksatz

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.

  1. X-Achse: False Positive Rate (FPR)
  2. Y-Achse: True Positive Rate (TPR/Recall)
  3. Perfektes Modell: Kurve geht zur oberen linken Ecke

03Redaktion

Herkunft und Stand

Redaktion und Aktualität

Ebenex RedaktionRedaktion

Veröffentlicht
Aktualisiert

Dieses Feld entwickelt sich schnell. Oben stehen Veröffentlichung und letzte Änderung; ein Prüfdatum kommt dazu, sobald die Erklärung nach ihrer letzten Änderung geprüft wurde.

↑ Inhalt

04FAQ

Häufige Fragen zu ROC Curve

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.

↑ Inhalt

05Weiterlernen

Was möchtest du als Nächstes verstehen?

↑ Inhalt