roc_curve#
- sklearn.metrics.roc_curve(y_true, y_score, *, pos_label=None, sample_weight=None, drop_intermediate=True)[Quelle]#
Berechne die Receiver operating characteristic (ROC).
Hinweis: Unterstützung über binäre Klassifikationsaufgaben hinaus mittels One-vs-Rest oder One-vs-One ist nicht implementiert.
Lesen Sie mehr im Benutzerhandbuch.
- Parameter:
- y_truearray-ähnlich mit Form (n_samples,)
Wahre binäre Labels. Wenn die Labels weder {-1, 1} noch {0, 1} sind, sollte pos_label explizit angegeben werden.
- y_scorearray-artig der Form (n_samples,)
Zielwerte, können entweder Wahrscheinlichkeitsschätzungen der positiven Klasse, Konfidenzwerte oder nicht-schwellenwertbasierte Entscheidungsmaße sein (wie sie von „decision_function“ bei einigen Klassifikatoren zurückgegeben werden). Für decision_function-Scores sollten Werte größer oder gleich Null die positive Klasse anzeigen.
- pos_labelint, float, bool oder str, Standardwert=None
Das Label der positiven Klasse. Wenn
pos_label=Noneist, undy_truein {-1, 1} oder {0, 1} liegt, wirdpos_labelauf 1 gesetzt, andernfalls wird ein Fehler ausgelöst.- sample_weightarray-like der Form (n_samples,), Standardwert=None
Stichprobengewichte.
- drop_intermediatebool, Standardwert=True
Ob Schwellenwerte, bei denen der resultierende Punkt im ROC-Raum kollinear mit seinen Nachbarn ist, entfernt werden sollen. Dies hat keinen Einfluss auf die ROC-AUC oder die visuelle Form der Kurve, reduziert jedoch die Anzahl der geplotteten Punkte.
Hinzugefügt in Version 0.17: Parameter drop_intermediate.
- Gibt zurück:
- fprndarray der Form (>2,)
Steigende falsch-positive Raten, so dass Element
idie falsch-positive Rate von Vorhersagen mit einem Score >=thresholds[i]ist.- tprndarray der Form (>2,)
Steigende richtig-positive Raten, so dass Element
idie richtig-positive Rate von Vorhersagen mit einem Score >=thresholds[i]ist.- thresholdsndarray der Form (n_thresholds,)
Sinkende Schwellenwerte auf der Entscheidungsfunktion, die zur Berechnung von fpr und tpr verwendet werden. Der erste Schwellenwert wird auf
np.infgesetzt.Geändert in Version 1.3: Ein willkürlicher Schwellenwert unendlich (gespeichert in
thresholds[0]) wird hinzugefügt, um einen Klassifikator darzustellen, der immer die negative Klasse vorhersagt, d.h.fpr=0undtpr=0.
Siehe auch
RocCurveDisplay.from_estimatorZeichnen Sie die Receiver Operating Characteristic (ROC)-Kurve anhand eines Estimators und einiger Daten.
RocCurveDisplay.from_predictionsZeichnen Sie die Receiver Operating Characteristic (ROC)-Kurve anhand der wahren und vorhergesagten Werte.
RocCurveDisplay.from_cv_resultsMehrere ROC-Kurven anhand von Kreuzvalidierungsergebnissen plotten.
det_curveBerechnet Fehlerraten für verschiedene Wahrscheinlichkeitsschwellenwerte.
roc_auc_scoreBerechnet die Fläche unter der ROC-Kurve.
confusion_matrix_at_thresholdsBerechnet im binären Fall die Zählungen von True Negative, False Positive, False Negative und True Positive pro Schwellenwert.
Anmerkungen
Da die Schwellenwerte von niedrigen zu hohen Werten sortiert sind, werden sie bei der Rückgabe umgekehrt, um sicherzustellen, dass sie sowohl mit
fprals auch mittprübereinstimmen, die während ihrer Berechnung in umgekehrter Reihenfolge sortiert sind.Referenzen
[2]Fawcett T. An introduction to ROC analysis[J]. Pattern Recognition Letters, 2006, 27(8):861-874.
Beispiele
>>> import numpy as np >>> from sklearn import metrics >>> y = np.array([1, 1, 2, 2]) >>> scores = np.array([0.1, 0.4, 0.35, 0.8]) >>> fpr, tpr, thresholds = metrics.roc_curve(y, scores, pos_label=2) >>> fpr array([0. , 0. , 0.5, 0.5, 1. ]) >>> tpr array([0. , 0.5, 0.5, 1. , 1. ]) >>> thresholds array([ inf, 0.8 , 0.4 , 0.35, 0.1 ])
Galeriebeispiele#
Multiklassen-Receiver Operating Characteristic (ROC)