PrecisionRecallDisplay#
- class sklearn.metrics.PrecisionRecallDisplay(precision, recall, *, average_precision=None, name=None, pos_label=None, prevalence_pos_label=None, estimator_name='deprecated')[Quelle]#
Visualisierung von Präzision und Recall.
Es wird empfohlen,
from_estimatoroderfrom_predictionszu verwenden, um einePrecisionRecallDisplayzu erstellen. Alle Parameter werden als Attribute gespeichert.Allgemeine Informationen zu Visualisierungswerkzeugen von
scikit-learnfinden Sie im Visualisierungsleitfaden. Anleitungen zur Interpretation dieser Plots finden Sie im Leitfaden zur Modellbewertung.- Parameter:
- precisionndarray
Präzisionswerte.
- recallndarray
Recall-Werte.
- average_precisionfloat, default=None
Durchschnittliche Präzision. Wenn None, wird die durchschnittliche Präzision nicht angezeigt.
- namestr, Standardwert=None
Name des Schätzers. Wenn None, wird der Name des Schätzers nicht angezeigt.
Geändert in Version 1.8:
estimator_namewurde zugunsten vonnameals veraltet markiert.- pos_labelint, float, bool oder str, Standardwert=None
Die Klasse, die als positive Klasse bei der Berechnung der Präzisions- und Recall-Metriken betrachtet wird. Wenn nicht
None, wird dieser Wert in den Achsenbeschriftungen angezeigt.Hinzugefügt in Version 0.24.
- prevalence_pos_labelfloat, default=None
Die Prävalenz des positiven Labels. Sie wird für die Darstellung der Zufallslinie verwendet. Wenn None, wird die Zufallslinie nicht gezeichnet, auch wenn
plot_chance_levelbeim Plotten auf True gesetzt ist.Hinzugefügt in Version 1.3.
- estimator_namestr, Standardwert=None
Name des Schätzers. Wenn None, wird der Name des Schätzers nicht angezeigt.
Veraltet seit Version 1.8:
estimator_nameist veraltet und wird in 1.10 entfernt. Verwenden Sie stattdessenname.
- Attribute:
- line_matplotlib Artist
Präzisions-Recall-Kurve.
- chance_level_matplotlib Artist oder None
Die Zufallslinie. Sie ist
None, wenn die Zufallslinie nicht gezeichnet wird.Hinzugefügt in Version 1.3.
- ax_matplotlib Axes
Achsen mit Präzisions-Recall-Kurve.
- figure_matplotlib Figure
Abbildung, die die Kurve enthält.
Siehe auch
precision_recall_curveBerechne Präzisions-Recall-Paare für verschiedene Wahrscheinlichkeitsschwellen.
PrecisionRecallDisplay.from_estimatorZeichnet die Präzisions-Recall-Kurve für einen binären Klassifikator.
PrecisionRecallDisplay.from_predictionsZeichnet die Präzisions-Recall-Kurve anhand von Vorhersagen eines binären Klassifikators.
Anmerkungen
Die durchschnittliche Präzision (siehe
average_precision_score) wird in scikit-learn ohne Interpolation berechnet. Um mit dieser Metrik konsistent zu sein, wird auch die Präzisions-Recall-Kurve ohne Interpolation gezeichnet (stufenweise).Sie können diesen Stil ändern, indem Sie das Schlüsselwortargument
drawstyle="default"inplot,from_estimatoroderfrom_predictionsübergeben. Die Kurve wird jedoch nicht streng mit der gemeldeten durchschnittlichen Präzision übereinstimmen.Beispiele
>>> import matplotlib.pyplot as plt >>> from sklearn.datasets import make_classification >>> from sklearn.metrics import (precision_recall_curve, ... PrecisionRecallDisplay) >>> 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) >>> clf.fit(X_train, y_train) SVC(random_state=0) >>> predictions = clf.predict(X_test) >>> precision, recall, _ = precision_recall_curve(y_test, predictions) >>> disp = PrecisionRecallDisplay(precision=precision, recall=recall) >>> disp.plot() <...> >>> plt.show()
- classmethod from_estimator(estimator, X, y, *, sample_weight=None, drop_intermediate=False, response_method='auto', pos_label=None, name=None, ax=None, plot_chance_level=False, chance_level_kw=None, despine=False, **kwargs)[Quelle]#
Zeichnet die Präzisions-Recall-Kurve basierend auf einem Schätzer und einigen Daten.
Allgemeine Informationen zu 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, Standard=False
Ob einige suboptimale Schwellenwerte, die nicht auf einer geplotteten Präzisions-Recall-Kurve erscheinen würden, verworfen werden sollen. Dies ist nützlich, um leichtere Präzisions-Recall-Kurven zu erstellen.
Hinzugefügt in Version 1.3.
- response_method{‘predict_proba’, ‘decision_function’, ‘auto’}, default=’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 dies nicht existiert, wird decision_function als nächstes versucht.
- pos_labelint, float, bool oder str, Standardwert=None
Die Klasse, die als positive Klasse bei der Berechnung der Präzisions- und Recall-Metriken betrachtet wird. Standardmäßig wird
estimators.classes_[1]als positive Klasse betrachtet.- namestr, Standardwert=None
Name zur Beschriftung der Kurve. Wenn
None, wird kein Name verwendet.- axmatplotlib axes, Standardwert=None
Axes-Objekt, auf dem geplottet werden soll. Wenn
None, wird eine neue Figur und Achse erstellt.- plot_chance_levelbool, default=False
Ob die Zufallslinie gezeichnet werden soll. Die Zufallslinie ist die Prävalenz des positiven Labels, die aus den Daten berechnet wird, die während des Aufrufs von
from_estimatoroderfrom_predictionsübergeben werden.Hinzugefügt in Version 1.3.
- chance_level_kwdict, default=None
Schlüsselwortargumente, die an
matplotlib.pyplot.plotzum Rendern der Zufallslinie übergeben werden.Hinzugefügt in Version 1.3.
- despinebool, default=False
Ob die oberen und rechten Spines des Plots entfernt werden sollen.
Hinzugefügt in Version 1.6.
- **kwargsdict
Zusätzliche Schlüsselwortargumente, die an
matplotlib.pyplot.plotübergeben werden.
- Gibt zurück:
- display
PrecisionRecallDisplay
- display
Siehe auch
PrecisionRecallDisplay.from_predictionsPlottet die Präzisions-Recall-Kurve anhand geschätzter Wahrscheinlichkeiten oder der Ausgabe der Entscheidungswertfunktion.
Anmerkungen
Die durchschnittliche Präzision (siehe
average_precision_score) wird in scikit-learn ohne Interpolation berechnet. Um mit dieser Metrik konsistent zu sein, wird auch die Präzisions-Recall-Kurve ohne Interpolation gezeichnet (stufenweise).Sie können diesen Stil ändern, indem Sie das Schlüsselwortargument
drawstyle="default"übergeben. Die Kurve wird jedoch nicht streng mit der gemeldeten durchschnittlichen Präzision übereinstimmen.Beispiele
>>> import matplotlib.pyplot as plt >>> from sklearn.datasets import make_classification >>> from sklearn.metrics import PrecisionRecallDisplay >>> from sklearn.model_selection import train_test_split >>> from sklearn.linear_model import LogisticRegression >>> X, y = make_classification(random_state=0) >>> X_train, X_test, y_train, y_test = train_test_split( ... X, y, random_state=0) >>> clf = LogisticRegression() >>> clf.fit(X_train, y_train) LogisticRegression() >>> PrecisionRecallDisplay.from_estimator( ... clf, X_test, y_test) <...> >>> plt.show()
- classmethod from_predictions(y_true, y_score=None, *, sample_weight=None, drop_intermediate=False, pos_label=None, name=None, ax=None, plot_chance_level=False, chance_level_kw=None, despine=False, y_pred='deprecated', **kwargs)[Quelle]#
Zeichnet die Präzisions-Recall-Kurve basierend auf binären Klassenvorhersagen.
Allgemeine Informationen zu Visualisierungswerkzeugen von
scikit-learnfinden Sie im Visualisierungsleitfaden. Anleitungen zur Interpretation dieser Plots finden Sie im Leitfaden zur Modellbewertung.- Parameter:
- y_truearray-ähnlich mit Form (n_samples,)
Tatsächliche binäre Labels.
- y_scorearray-artig der Form (n_samples,)
Geschätzte Wahrscheinlichkeiten oder Ausgabe der Entscheidungswertfunktion.
Hinzugefügt in Version 1.8:
y_predwurde iny_scoreumbenannt.- sample_weightarray-like der Form (n_samples,), Standardwert=None
Stichprobengewichte.
- drop_intermediatebool, Standard=False
Ob einige suboptimale Schwellenwerte, die nicht auf einer geplotteten Präzisions-Recall-Kurve erscheinen würden, verworfen werden sollen. Dies ist nützlich, um leichtere Präzisions-Recall-Kurven zu erstellen.
Hinzugefügt in Version 1.3.
- pos_labelint, float, bool oder str, Standardwert=None
Die Klasse, die als positive Klasse bei der Berechnung der Präzisions- und Recall-Metriken betrachtet wird. Wenn
pos_label=None, wirdpos_labelauf 1 gesetzt, wenny_truein {-1, 1} oder {0, 1} liegt, andernfalls wird ein Fehler ausgelöst.- namestr, Standardwert=None
Name zur Beschriftung der Kurve. 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.- plot_chance_levelbool, default=False
Ob die Zufallslinie gezeichnet werden soll. Die Zufallslinie ist die Prävalenz des positiven Labels, die aus den Daten berechnet wird, die während des Aufrufs von
from_estimatoroderfrom_predictionsübergeben werden.Hinzugefügt in Version 1.3.
- chance_level_kwdict, default=None
Schlüsselwortargumente, die an
matplotlib.pyplot.plotzum Rendern der Zufallslinie übergeben werden.Hinzugefügt in Version 1.3.
- despinebool, default=False
Ob die oberen und rechten Spines des Plots entfernt werden sollen.
Hinzugefügt in Version 1.6.
- y_predarray-ähnlich mit Form (n_samples,)
Geschätzte Wahrscheinlichkeiten oder Ausgabe der Entscheidungswertfunktion.
Veraltet seit Version 1.8:
y_predist veraltet und wird in 1.10 entfernt. Verwenden Sie stattdesseny_score.- **kwargsdict
Zusätzliche Schlüsselwortargumente, die an
matplotlib.pyplot.plotübergeben werden.
- Gibt zurück:
- display
PrecisionRecallDisplay
- display
Siehe auch
PrecisionRecallDisplay.from_estimatorPlottet die Präzisions-Recall-Kurve mithilfe eines Schätzers.
Anmerkungen
Die durchschnittliche Präzision (siehe
average_precision_score) wird in scikit-learn ohne Interpolation berechnet. Um mit dieser Metrik konsistent zu sein, wird auch die Präzisions-Recall-Kurve ohne Interpolation gezeichnet (stufenweise).Sie können diesen Stil ändern, indem Sie das Schlüsselwortargument
drawstyle="default"übergeben. Die Kurve wird jedoch nicht streng mit der gemeldeten durchschnittlichen Präzision übereinstimmen.Beispiele
>>> import matplotlib.pyplot as plt >>> from sklearn.datasets import make_classification >>> from sklearn.metrics import PrecisionRecallDisplay >>> from sklearn.model_selection import train_test_split >>> from sklearn.linear_model import LogisticRegression >>> X, y = make_classification(random_state=0) >>> X_train, X_test, y_train, y_test = train_test_split( ... X, y, random_state=0) >>> clf = LogisticRegression() >>> clf.fit(X_train, y_train) LogisticRegression() >>> y_score = clf.predict_proba(X_test)[:, 1] >>> PrecisionRecallDisplay.from_predictions( ... y_test, y_score) <...> >>> plt.show()
- plot(ax=None, *, name=None, plot_chance_level=False, chance_level_kw=None, despine=False, **kwargs)[Quelle]#
Visualisierung plotten.
Zusätzliche Schlüsselwortargumente werden an
matplotlib.pyplot.plotübergeben.- Parameter:
- axMatplotlib Axes, default=None
Axes-Objekt, auf dem geplottet werden soll. Wenn
None, wird eine neue Figur und Achse erstellt.- namestr, Standardwert=None
Name der Präzisions-Recall-Kurve zur Beschriftung. Wenn
None, wirdnameverwendet, wenn es nichtNoneist, andernfalls wird keine Beschriftung angezeigt.- plot_chance_levelbool, default=False
Ob die Zufallslinie gezeichnet werden soll. Die Zufallslinie ist die Prävalenz des positiven Labels, die aus den Daten berechnet wird, die während des Aufrufs von
from_estimatoroderfrom_predictionsübergeben werden.Hinzugefügt in Version 1.3.
- chance_level_kwdict, default=None
Schlüsselwortargumente, die an
matplotlib.pyplot.plotzum Rendern der Zufallslinie übergeben werden.Hinzugefügt in Version 1.3.
- despinebool, default=False
Ob die oberen und rechten Spines des Plots entfernt werden sollen.
Hinzugefügt in Version 1.6.
- **kwargsdict
Zusätzliche Schlüsselwortargumente, die an
matplotlib.pyplot.plotübergeben werden.
- Gibt zurück:
- display
PrecisionRecallDisplay Objekt, das berechnete Werte speichert.
- display
Anmerkungen
Die durchschnittliche Präzision (siehe
average_precision_score) wird in scikit-learn ohne Interpolation berechnet. Um mit dieser Metrik konsistent zu sein, wird auch die Präzisions-Recall-Kurve ohne Interpolation gezeichnet (stufenweise).Sie können diesen Stil ändern, indem Sie das Schlüsselwortargument
drawstyle="default"übergeben. Die Kurve wird jedoch nicht streng mit der gemeldeten durchschnittlichen Präzision übereinstimmen.
Galeriebeispiele#
Post-Hoc-Anpassung des Entscheidungsschwellenwerts für kostenempfindliches Lernen