Scikit-Learn Visualisierungs-API

Machine LearningMachine LearningBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Scikit-learn ist eine beliebte Python-Bibliothek, die eine einfache und effiziente API für maschinelles Lernen bietet. Ein wichtiges Merkmal von scikit-learn ist seine integrierte Visualisierungs-API, die es ermöglicht, Visualisierungen für maschinelle Lernmodelle einfach zu generieren. In diesem Lab werden wir untersuchen, wie die scikit-learn-Visualisierungs-API verwendet werden kann, um ROC-Kurven für zwei verschiedene Klassifizierer zu vergleichen.

Tipps für die VM

Nachdem der VM-Start abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund der Einschränkungen in Jupyter Notebook nicht automatisiert werden.

Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.

Daten laden und einen SVC trainieren

Wir beginnen, indem wir den Weindatensatz laden und ihn in ein binäres Klassifizierungsproblem umwandeln. Anschließend werden wir einen Support-Vector-Klassifizierer auf dem Trainingsdatensatz trainieren.

import matplotlib.pyplot as plt
from sklearn.svm import SVC
from sklearn.metrics import RocCurveDisplay
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split

X, y = load_wine(return_X_y=True)
y = y == 2

X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
svc = SVC(random_state=42)
svc.fit(X_train, y_train)

Die ROC-Kurve zeichnen

Als nächstes werden wir die ROC-Kurve mit der Funktion RocCurveDisplay.from_estimator zeichnen. Diese Funktion nimmt den trainierten Klassifizierer, den Testdatensatz und die wahren Labels als Eingaben entgegen und gibt ein Objekt zurück, das zur Zeichnung der ROC-Kurve verwendet werden kann. Anschließend werden wir die Methode show() aufrufen, um das Diagramm anzuzeigen.

svc_disp = RocCurveDisplay.from_estimator(svc, X_test, y_test)
svc_disp.show()

Einen Random Forest trainieren und die ROC-Kurve zeichnen

In diesem Schritt werden wir einen Random-Forest-Klassifizierer trainieren und seine ROC-Kurve neben der SVC-ROC-Kurve zeichnen. Dazu werden wir ein neues RandomForestClassifier-Objekt erstellen, es auf die Trainingsdaten anpassen und dann ein neues RocCurveDisplay-Objekt mit diesem Klassifizierer erstellen. Wir werden auch den Parameter ax an diese Funktion übergeben, um die Kurven auf der gleichen Achse zu zeichnen. Schließlich werden wir die plot()-Methode des svc_disp-Objekts aufrufen, um die SVC-ROC-Kurve zu zeichnen.

from sklearn.ensemble import RandomForestClassifier

rfc = RandomForestClassifier(n_estimators=10, random_state=42)
rfc.fit(X_train, y_train)

ax = plt.gca()
rfc_disp = RocCurveDisplay.from_estimator(rfc, X_test, y_test, ax=ax, alpha=0.8)
svc_disp.plot(ax=ax, alpha=0.8)
plt.show()

Zusammenfassung

In diesem Lab haben wir untersucht, wie die scikit-learn-Visualisierungs-API verwendet werden kann, um ROC-Kurven für zwei verschiedene Klassifizierer zu zeichnen. Wir haben begonnen, indem wir den Weindatensatz geladen und einen Support-Vector-Klassifizierer auf den Trainingsdaten trainiert haben. Anschließend haben wir die ROC-Kurve für diesen Klassifizierer mit der Funktion RocCurveDisplay gezeichnet. Schließlich haben wir einen Random-Forest-Klassifizierer trainiert und seine ROC-Kurve neben der SVC-ROC-Kurve gezeichnet. Die scikit-learn-Visualisierungs-API erleichtert es, verschiedene Klassifizierer zu vergleichen und deren Leistung zu visualisieren.