Visualisierungen mit Display-Objekten#

In diesem Beispiel konstruieren wir Display-Objekte, ConfusionMatrixDisplay, RocCurveDisplay und PrecisionRecallDisplay direkt aus ihren jeweiligen Metriken. Dies ist eine Alternative zur Verwendung ihrer entsprechenden Plot-Funktionen, wenn die Vorhersagen eines Modells bereits berechnet wurden oder teuer zu berechnen sind. Beachten Sie, dass dies eine fortgeschrittene Verwendung ist, und im Allgemeinen empfehlen wir die Verwendung ihrer jeweiligen Plot-Funktionen.

# Authors: The scikit-learn developers
# SPDX-License-Identifier: BSD-3-Clause

Daten laden und Modell trainieren#

Für dieses Beispiel laden wir einen Datensatz eines Bluttransfusions-Service-Centers von OpenML. Dies ist ein binäres Klassifikationsproblem, bei dem das Ziel darin besteht, ob eine Person Blut gespendet hat. Dann werden die Daten in Trainings- und Testdatensätze aufgeteilt und eine logistische Regression mit den Trainingsdaten angepasst.

from sklearn.datasets import fetch_openml
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler

X, y = fetch_openml(data_id=1464, return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y)

clf = make_pipeline(StandardScaler(), LogisticRegression(random_state=0))
clf.fit(X_train, y_train)
Pipeline(steps=[('standardscaler', StandardScaler()),
                ('logisticregression', LogisticRegression(random_state=0))])
In einer Jupyter-Umgebung führen Sie diese Zelle bitte erneut aus, um die HTML-Darstellung anzuzeigen, oder vertrauen Sie dem Notebook.
Auf GitHub kann die HTML-Darstellung nicht gerendert werden. Versuchen Sie bitte, diese Seite mit nbviewer.org zu laden.


Erstellen Sie ConfusionMatrixDisplay#

Mit dem angepassten Modell berechnen wir die Vorhersagen des Modells auf dem Testdatensatz. Diese Vorhersagen werden verwendet, um die Konfusionsmatrix zu berechnen, die mit der ConfusionMatrixDisplay geplottet wird.

from sklearn.metrics import ConfusionMatrixDisplay, confusion_matrix

y_pred = clf.predict(X_test)
cm = confusion_matrix(y_test, y_pred)

cm_display = ConfusionMatrixDisplay(cm).plot()
plot display object visualization

Erstellen Sie RocCurveDisplay#

Die ROC-Kurve erfordert entweder die Wahrscheinlichkeiten oder die nicht-schwellenwertigen Entscheidungswerte des Schätzers. Da die logistische Regression eine Entscheidungsfunktion bereitstellt, werden wir diese verwenden, um die ROC-Kurve zu plotten.

from sklearn.metrics import RocCurveDisplay, roc_curve

y_score = clf.decision_function(X_test)

fpr, tpr, _ = roc_curve(y_test, y_score, pos_label=clf.classes_[1])
roc_display = RocCurveDisplay(fpr=fpr, tpr=tpr).plot()
plot display object visualization

Erstellen Sie PrecisionRecallDisplay#

Ähnlich kann die Präzisions-Recall-Kurve mit `y_score` aus den Vorhersageabschnitten geplottet werden.

from sklearn.metrics import PrecisionRecallDisplay, precision_recall_curve

prec, recall, _ = precision_recall_curve(y_test, y_score, pos_label=clf.classes_[1])
pr_display = PrecisionRecallDisplay(precision=prec, recall=recall).plot()
plot display object visualization

Kombinieren Sie die Display-Objekte zu einem einzigen Plot#

Die Display-Objekte speichern die berechneten Werte, die als Argumente übergeben wurden. Dies ermöglicht es, die Visualisierungen einfach mit der Matplotlib API zu kombinieren. Im folgenden Beispiel platzieren wir die Displays nebeneinander in einer Reihe.

import matplotlib.pyplot as plt

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 8))

roc_display.plot(ax=ax1)
pr_display.plot(ax=ax2)
plt.show()
plot display object visualization

Gesamtlaufzeit des Skripts: (0 Minuten 0,262 Sekunden)

Verwandte Beispiele

Präzisions-Rückruf

Präzisions-Rückruf

ROC-Kurve mit Visualisierungs-API

ROC-Kurve mit Visualisierungs-API

Multiklassen-Receiver Operating Characteristic (ROC)

Multiklassen-Receiver Operating Characteristic (ROC)

Post-Hoc-Anpassung des Entscheidungsschwellenwerts für kostenempfindliches Lernen

Post-Hoc-Anpassung des Entscheidungsschwellenwerts für kostenempfindliches Lernen

Galerie generiert von Sphinx-Gallery