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=None ist, und y_true in {-1, 1} oder {0, 1} liegt, wird pos_label auf 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 i die falsch-positive Rate von Vorhersagen mit einem Score >= thresholds[i] ist.

tprndarray der Form (>2,)

Steigende richtig-positive Raten, so dass Element i die 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.inf gesetzt.

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=0 und tpr=0.

Siehe auch

RocCurveDisplay.from_estimator

Zeichnen Sie die Receiver Operating Characteristic (ROC)-Kurve anhand eines Estimators und einiger Daten.

RocCurveDisplay.from_predictions

Zeichnen Sie die Receiver Operating Characteristic (ROC)-Kurve anhand der wahren und vorhergesagten Werte.

RocCurveDisplay.from_cv_results

Mehrere ROC-Kurven anhand von Kreuzvalidierungsergebnissen plotten.

det_curve

Berechnet Fehlerraten für verschiedene Wahrscheinlichkeitsschwellenwerte.

roc_auc_score

Berechnet die Fläche unter der ROC-Kurve.

confusion_matrix_at_thresholds

Berechnet 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 fpr als auch mit tpr ü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 ])