RocCurveDisplay#
- class sklearn.metrics.RocCurveDisplay(*, fpr, tpr, roc_auc=None, name=None, pos_label=None, estimator_name='deprecated')[Quelle]#
Visualisierung der ROC-Kurve.
Es wird empfohlen,
from_estimatoroderfrom_predictionsoderfrom_cv_resultszu verwenden, um eineRocCurveDisplayzu erstellen. Alle Parameter werden als Attribute gespeichert.Allgemeine Informationen zu den Visualisierungswerkzeugen von
scikit-learnfinden Sie im Visualisierungsleitfaden. Anleitungen zur Interpretation dieser Plots finden Sie im Leitfaden zur Modellbewertung.- Parameter:
- fprndarray oder Liste von ndarrays
Fehlerhafte Positivraten. Jedes ndarray sollte Werte für eine einzelne Kurve enthalten. Wenn mehrere Kurven geplottet werden, sollte die Liste die gleiche Länge wie
tprhaben.Geändert in Version 1.7: Akzeptiert jetzt eine Liste zum Plotten mehrerer Kurven.
- tprndarray oder Liste von ndarrays
Wahre Positivraten. Jedes ndarray sollte Werte für eine einzelne Kurve enthalten. Wenn mehrere Kurven geplottet werden, sollte die Liste die gleiche Länge wie
fprhaben.Geändert in Version 1.7: Akzeptiert jetzt eine Liste zum Plotten mehrerer Kurven.
- roc_aucfloat oder Liste von floats, Standardwert=None
Fläche unter der ROC-Kurve, verwendet zur Beschriftung jeder Kurve in der Legende. Wenn mehrere Kurven geplottet werden, sollte es eine Liste mit der gleichen Länge wie
fprundtprsein. WennNone, werden die ROC-AUC-Scores nicht in der Legende angezeigt.Geändert in Version 1.7: Akzeptiert jetzt eine Liste zum Plotten mehrerer Kurven.
- namestr oder Liste von str, Standardwert=None
Name zur Beschriftung von Legendereinträgen. Die Anzahl der Legendereinträge wird durch
curve_kwargsbestimmt, die anplotübergeben werden, und wird vonnamenicht beeinflusst. Um jede Kurve zu beschriften, geben Sie eine Liste von Zeichenketten an. Um einzelne Kurven, die das gleiche Aussehen haben, nicht zu beschriften, kann eine Liste nicht in Verbindung mitcurve_kwargsals Wörterbuch oder None verwendet werden. Wenn eine Zeichenkette angegeben wird, wird sie entweder zur Beschriftung des einzelnen Legendereintrags oder, wenn es mehrere Legendereinträge gibt, zur Beschriftung jeder einzelnen Kurve mit demselben Namen verwendet. WennNone, wird kein Name in der Legende angezeigt.Geändert in Version 1.7:
estimator_namewurde zugunsten vonnameveraltet.- pos_labelint, float, bool oder str, Standardwert=None
Die Klasse, die als positive Klasse betrachtet wird, wenn ROC-AUC-Metriken berechnet werden. Wenn nicht
None, wird dieser Wert in den Achsenbeschriftungen (x und y) angezeigt.Hinzugefügt in Version 0.24.
- estimator_namestr, Standardwert=None
Name des Schätzers. Wenn None, wird der Name des Schätzers nicht angezeigt.
Veraltet seit Version 1.7:
estimator_nameist veraltet und wird in 1.9 entfernt. Verwenden Sie stattdessenname.
- Attribute:
- line_matplotlib Artist oder Liste von matplotlib Artists
ROC-Kurven.
Geändert in Version 1.7: Dieses Attribut kann jetzt eine Liste von Artists sein, wenn mehrere Kurven geplottet werden.
- chance_level_matplotlib Artist oder None
Die Linie für das Zufallsniveau. Sie ist
None, wenn das Zufallsniveau nicht geplottet wird.Hinzugefügt in Version 1.3.
- ax_matplotlib Axes
Achsen mit ROC-Kurve.
- figure_matplotlib Figure
Abbildung, die die Kurve enthält.
Siehe auch
roc_curveBerechnen Sie die Receiver Operating Characteristic (ROC)-Kurve.
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_resultsPlotten von ROC-Kurven für mehrere Folds anhand von Kreuzvalidierungsergebnissen.
roc_auc_scoreBerechnet die Fläche unter der ROC-Kurve.
Beispiele
>>> import matplotlib.pyplot as plt >>> import numpy as np >>> from sklearn import metrics >>> y_true = np.array([0, 0, 1, 1]) >>> y_score = np.array([0.1, 0.4, 0.35, 0.8]) >>> fpr, tpr, thresholds = metrics.roc_curve(y_true, y_score) >>> roc_auc = metrics.auc(fpr, tpr) >>> display = metrics.RocCurveDisplay(fpr=fpr, tpr=tpr, roc_auc=roc_auc, ... name='example estimator') >>> display.plot() <...> >>> plt.show()
- classmethod from_cv_results(cv_results, X, y, *, sample_weight=None, drop_intermediate=True, response_method='auto', pos_label=None, ax=None, name=None, curve_kwargs=None, plot_chance_level=False, chance_level_kwargs=None, despine=False)[Quelle]#
Erstellt eine ROC-Kurvenanzeige für mehrere Folds anhand von Kreuzvalidierungsergebnissen.
Hinzugefügt in Version 1.7.
- Parameter:
- cv_resultsdict
Wörterbuch, wie es von
cross_validatemitreturn_estimator=Trueundreturn_indices=Truezurückgegeben wird (d. h. das Wörterbuch sollte die Schlüssel "estimator" und "indices" enthalten).- X{array-like, sparse matrix} der Form (n_samples, n_features)
Eingabewerte.
- yarray-like von Form (n_samples,)
Zielwerte.
- sample_weightarray-like der Form (n_samples,), Standardwert=None
Stichprobengewichte.
- drop_intermediatebool, Standardwert=True
Ob einige suboptimale Schwellenwerte, die nicht auf einer geplotteten ROC-Kurve erscheinen würden, fallen gelassen werden sollen. Dies ist nützlich, um leichtere ROC-Kurven zu erstellen.
- response_method{‘predict_proba’, ‘decision_function’, ‘auto’} Standardwert=’auto’
Gibt an, ob predict_proba oder decision_function als Zielantwort verwendet werden soll. Wenn auf „auto“ gesetzt, wird zuerst predict_proba versucht, und wenn es nicht existiert, wird decision_function versucht.
- pos_labelint, float, bool oder str, Standardwert=None
Die Klasse, die als positive Klasse bei der Berechnung der ROC-AUC-Metriken betrachtet wird. Standardmäßig wird
estimator.classes_[1](unter Verwendung vonestimatorauscv_results) als positive Klasse betrachtet.- axmatplotlib axes, Standardwert=None
Axes-Objekt, auf dem geplottet werden soll. Wenn
None, wird eine neue Figur und Achse erstellt.- namestr oder Liste von str, Standardwert=None
Name zur Beschriftung von Legendereinträgen. Die Anzahl der Legendereinträge wird durch
curve_kwargsbestimmt und wird vonnamenicht beeinflusst. Um jede Kurve zu beschriften, geben Sie eine Liste von Zeichenketten an. Um einzelne Kurven, die das gleiche Aussehen haben, nicht zu beschriften, kann eine Liste nicht in Verbindung mitcurve_kwargsals Wörterbuch oder None verwendet werden. Wenn eine Zeichenkette angegeben wird, wird sie entweder zur Beschriftung des einzelnen Legendereintrags oder, wenn es mehrere Legendereinträge gibt, zur Beschriftung jeder einzelnen Kurve mit demselben Namen verwendet. WennNone, wird kein Name in der Legende angezeigt.- curve_kwargsdict oder Liste von dict, Standardwert=None
Schlüsselwortargumente, die an die
plot-Funktion von matplotlib übergeben werden, um einzelne ROC-Kurven zu zeichnen. Wenn eine Liste angegeben wird, werden die Parameter sequenziell auf die ROC-Kurven jedes CV-Folds angewendet und ein Legendereintrag für jede Kurve hinzugefügt. Wenn ein einzelnes Wörterbuch angegeben wird, werden dieselben Parameter auf alle ROC-Kurven angewendet und ein einzelner Legendereintrag für alle Kurven hinzugefügt, der mit dem mittleren ROC-AUC-Score beschriftet ist.- plot_chance_levelbool, Standardwert=False
Ob das Zufallsniveau geplottet werden soll.
- chance_level_kwargsdict, Standardwert=None
Schlüsselwortargumente, die an die
plot-Funktion von matplotlib zur Darstellung der Zufallsniveaulienie übergeben werden.- despinebool, Standardwert=False
Ob die oberen und rechten Spines vom Plot entfernt werden sollen.
- Gibt zurück:
- Die ROC-Kurvenanzeige.
Die ROC-Kurvenanzeige für mehrere Folds.
Siehe auch
roc_curveBerechnen Sie die Receiver Operating Characteristic (ROC)-Kurve.
RocCurveDisplay.from_estimatorZeichnen Sie die Receiver Operating Characteristic (ROC)-Kurve anhand eines Estimators und einiger Daten.
RocCurveDisplay.from_predictionsROC-Kurvenvisualisierung anhand der Wahrscheinlichkeiten oder Scores eines Klassifikators.
roc_auc_scoreBerechnet die Fläche unter der ROC-Kurve.
Beispiele
>>> import matplotlib.pyplot as plt >>> from sklearn.datasets import make_classification >>> from sklearn.metrics import RocCurveDisplay >>> from sklearn.model_selection import cross_validate >>> from sklearn.svm import SVC >>> X, y = make_classification(random_state=0) >>> clf = SVC(random_state=0) >>> cv_results = cross_validate( ... clf, X, y, cv=3, return_estimator=True, return_indices=True) >>> RocCurveDisplay.from_cv_results(cv_results, X, y) <...> >>> plt.show()
- classmethod from_estimator(estimator, X, y, *, sample_weight=None, drop_intermediate=True, response_method='auto', pos_label=None, name=None, ax=None, curve_kwargs=None, plot_chance_level=False, chance_level_kw=None, despine=False, **kwargs)[Quelle]#
Erstellt eine ROC-Kurvenanzeige aus einem Schätzer.
Allgemeine Informationen zu den Visualisierungswerkzeugen von
scikit-learnfinden Sie im Visualisierungsleitfaden. Anleitungen zur Interpretation dieser Plots finden Sie im Leitfaden zur Modellbewertung.- Parameter:
- estimatorSchätzer-Instanz
Gefitteter Klassifikator oder eine gefittete
Pipeline, bei der der letzte Schätzer ein Klassifikator ist.- X{array-like, sparse matrix} der Form (n_samples, n_features)
Eingabewerte.
- yarray-like von Form (n_samples,)
Zielwerte.
- 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, verworfen werden sollen. Dies hat keine Auswirkung auf die ROC-AUC oder die visuelle Form der Kurve, reduziert aber die Anzahl der geplotteten Punkte.
- response_method{‘predict_proba’, ‘decision_function’, ‘auto’} Standardwert=’auto’
Gibt an, ob predict_proba oder decision_function als Zielantwort verwendet werden soll. Wenn auf „auto“ gesetzt, wird zuerst predict_proba versucht, und wenn es nicht existiert, wird decision_function versucht.
- pos_labelint, float, bool oder str, Standardwert=None
Die Klasse, die als positive Klasse bei der Berechnung der ROC-AUC betrachtet wird. Standardmäßig wird
estimators.classes_[1]als positive Klasse betrachtet.- namestr, Standardwert=None
Name der ROC-Kurve zur Beschriftung der Legende. Wenn
None, wird der Name des Schätzers verwendet.- axmatplotlib axes, Standardwert=None
Axes-Objekt, auf dem geplottet werden soll. Wenn
None, wird eine neue Figur und Achse erstellt.- curve_kwargsdict, Standardwert=None
Schlüsselwortargumente, die an die
plot-Funktion von matplotlib übergeben werden.Hinzugefügt in Version 1.7.
- plot_chance_levelbool, Standardwert=False
Ob das Zufallsniveau geplottet werden soll.
Hinzugefügt in Version 1.3.
- chance_level_kwdict, Standardwert=None
Schlüsselwortargumente, die an die
plot-Funktion von matplotlib zur Darstellung der Zufallsniveaulienie übergeben werden.Hinzugefügt in Version 1.3.
- despinebool, Standardwert=False
Ob die oberen und rechten Spines vom Plot entfernt werden sollen.
Hinzugefügt in Version 1.6.
- **kwargsdict
Schlüsselwortargumente, die an die
plot-Funktion von matplotlib übergeben werden.Veraltet seit Version 1.7: kwargs ist veraltet und wird in 1.9 entfernt. Übergeben Sie matplotlib-Argumente stattdessen als Wörterbuch an
curve_kwargs.
- Gibt zurück:
- Die ROC-Kurvenanzeige.
Die ROC-Kurvenanzeige.
Siehe auch
roc_curveBerechnen Sie die Receiver Operating Characteristic (ROC)-Kurve.
RocCurveDisplay.from_predictionsROC-Kurvenvisualisierung anhand der Wahrscheinlichkeiten oder Scores eines Klassifikators.
RocCurveDisplay.from_cv_resultsPlotten von ROC-Kurven für mehrere Folds anhand von Kreuzvalidierungsergebnissen.
roc_auc_scoreBerechnet die Fläche unter der ROC-Kurve.
Beispiele
>>> import matplotlib.pyplot as plt >>> from sklearn.datasets import make_classification >>> from sklearn.metrics import RocCurveDisplay >>> from sklearn.model_selection import train_test_split >>> from sklearn.svm import SVC >>> X, y = make_classification(random_state=0) >>> X_train, X_test, y_train, y_test = train_test_split( ... X, y, random_state=0) >>> clf = SVC(random_state=0).fit(X_train, y_train) >>> RocCurveDisplay.from_estimator( ... clf, X_test, y_test) <...> >>> plt.show()
- classmethod from_predictions(y_true, y_score=None, *, sample_weight=None, drop_intermediate=True, pos_label=None, name=None, ax=None, curve_kwargs=None, plot_chance_level=False, chance_level_kw=None, despine=False, y_pred='deprecated', **kwargs)[Quelle]#
Plotten Sie die ROC-Kurve anhand der wahren und vorhergesagten Werte.
Allgemeine Informationen zu den Visualisierungswerkzeugen von
scikit-learnfinden Sie im Visualisierungsleitfaden. Anleitungen zur Interpretation dieser Plots finden Sie im Leitfaden zur Modellbewertung.Hinzugefügt in Version 1.0.
- Parameter:
- y_truearray-ähnlich mit Form (n_samples,)
Wahre Labels.
- y_scorearray-artig der Form (n_samples,)
Ziel-Scores, 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).
Hinzugefügt in Version 1.7:
y_predwurde iny_scoreumbenannt.- 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, verworfen werden sollen. Dies hat keine Auswirkung auf die ROC-AUC oder die visuelle Form der Kurve, reduziert aber die Anzahl der geplotteten Punkte.
- pos_labelint, float, bool oder str, Standardwert=None
Das Label der positiven Klasse bei der Berechnung der ROC-AUC. Wenn
pos_label=None, undy_truein {-1, 1} oder {0, 1} ist, wirdpos_labelauf 1 gesetzt, andernfalls wird ein Fehler ausgelöst.- namestr, Standardwert=None
Name der ROC-Kurve für die Legendenbeschriftung. Wenn
None, wird der Name auf"Classifier"gesetzt.- axmatplotlib axes, Standardwert=None
Axes-Objekt, auf dem geplottet werden soll. Wenn
None, wird eine neue Figur und Achse erstellt.- curve_kwargsdict, Standardwert=None
Schlüsselwortargumente, die an die
plot-Funktion von matplotlib übergeben werden.Hinzugefügt in Version 1.7.
- plot_chance_levelbool, Standardwert=False
Ob das Zufallsniveau geplottet werden soll.
Hinzugefügt in Version 1.3.
- chance_level_kwdict, Standardwert=None
Schlüsselwortargumente, die an die
plot-Funktion von matplotlib zur Darstellung der Zufallsniveaulienie übergeben werden.Hinzugefügt in Version 1.3.
- despinebool, Standardwert=False
Ob die oberen und rechten Spines vom Plot entfernt werden sollen.
Hinzugefügt in Version 1.6.
- y_predarray-ähnlich mit Form (n_samples,)
Ziel-Scores, 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).
Veraltet seit Version 1.7:
y_predist veraltet und wird in 1.9 entfernt. Verwenden Sie stattdesseny_score.- **kwargsdict
Zusätzliche Schlüsselwortargumente, die an die
plot-Funktion von matplotlib übergeben werden.Veraltet seit Version 1.7: kwargs ist veraltet und wird in 1.9 entfernt. Übergeben Sie matplotlib-Argumente stattdessen als Wörterbuch an
curve_kwargs.
- Gibt zurück:
- Die ROC-Kurvenanzeige.
Objekt, das berechnete Werte speichert.
Siehe auch
roc_curveBerechnen Sie die Receiver Operating Characteristic (ROC)-Kurve.
RocCurveDisplay.from_estimatorROC-Kurvenvisualisierung anhand eines Schätzers und einiger Daten.
RocCurveDisplay.from_cv_resultsPlotten von ROC-Kurven für mehrere Folds anhand von Kreuzvalidierungsergebnissen.
roc_auc_scoreBerechnet die Fläche unter der ROC-Kurve.
Beispiele
>>> import matplotlib.pyplot as plt >>> from sklearn.datasets import make_classification >>> from sklearn.metrics import RocCurveDisplay >>> from sklearn.model_selection import train_test_split >>> from sklearn.svm import SVC >>> X, y = make_classification(random_state=0) >>> X_train, X_test, y_train, y_test = train_test_split( ... X, y, random_state=0) >>> clf = SVC(random_state=0).fit(X_train, y_train) >>> y_score = clf.decision_function(X_test) >>> RocCurveDisplay.from_predictions(y_test, y_score) <...> >>> plt.show()
- plot(ax=None, *, name=None, curve_kwargs=None, plot_chance_level=False, chance_level_kw=None, despine=False, **kwargs)[Quelle]#
Visualisierung plotten.
- Parameter:
- axmatplotlib axes, Standardwert=None
Axes-Objekt, auf dem geplottet werden soll. Wenn
None, wird eine neue Figur und Achse erstellt.- namestr oder Liste von str, Standardwert=None
Name zur Beschriftung von Legendereinträgen. Die Anzahl der Legendereinträge wird durch
curve_kwargsbestimmt und wird vonnamenicht beeinflusst. Um jede Kurve zu beschriften, geben Sie eine Liste von Zeichenketten an. Um einzelne Kurven, die das gleiche Aussehen haben, nicht zu beschriften, kann eine Liste nicht in Verbindung mitcurve_kwargsals Wörterbuch oder None verwendet werden. Wenn eine Zeichenkette angegeben wird, wird sie entweder zur Beschriftung des einzelnen Legendereintrags oder, wenn es mehrere Legendereinträge gibt, zur Beschriftung jeder einzelnen Kurve mit demselben Namen verwendet. WennNone, wird aufnamegesetzt, der bei der Initialisierung vonRocCurveDisplayangegeben wurde. Wenn immer nochNone, wird kein Name in der Legende angezeigt.Hinzugefügt in Version 1.7.
- curve_kwargsdict oder Liste von dict, Standardwert=None
Schlüsselwortargumente, die an die
plot-Funktion von matplotlib übergeben werden, um einzelne ROC-Kurven zu zeichnen. Für die Darstellung einer einzelnen Kurve sollte dies ein Wörterbuch sein. Für die Darstellung mehrerer Kurven: Wenn eine Liste angegeben wird, werden die Parameter sequenziell auf die ROC-Kurven jedes CV-Folds angewendet und ein Legendereintrag für jede Kurve hinzugefügt. Wenn ein einzelnes Wörterbuch angegeben wird, werden dieselben Parameter auf alle ROC-Kurven angewendet und ein einzelner Legendereintrag für alle Kurven hinzugefügt, der mit dem mittleren ROC-AUC-Score beschriftet ist.Hinzugefügt in Version 1.7.
- plot_chance_levelbool, Standardwert=False
Ob das Zufallsniveau geplottet werden soll.
Hinzugefügt in Version 1.3.
- chance_level_kwdict, Standardwert=None
Schlüsselwortargumente, die an die
plot-Funktion von matplotlib zur Darstellung der Zufallsniveaulienie übergeben werden.Hinzugefügt in Version 1.3.
- despinebool, Standardwert=False
Ob die oberen und rechten Spines vom Plot entfernt werden sollen.
Hinzugefügt in Version 1.6.
- **kwargsdict
Schlüsselwortargumente, die an die
plot-Funktion von matplotlib übergeben werden.Veraltet seit Version 1.7: kwargs ist veraltet und wird in 1.9 entfernt. Übergeben Sie matplotlib-Argumente stattdessen als Wörterbuch an
curve_kwargs.
- Gibt zurück:
- Die ROC-Kurvenanzeige.
Objekt, das berechnete Werte speichert.
Galeriebeispiele#
Post-Hoc-Anpassung des Entscheidungsschwellenwerts für kostenempfindliches Lernen
Multiklassen-Receiver Operating Characteristic (ROC)
Receiver Operating Characteristic (ROC) mit Kreuzvalidierung