Scikit-Learn Lasso-Pfad

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

In diesem Lab wird gezeigt, wie der Lasso-Pfad entlang des Regularisierungsparameters mithilfe des LARS-Algorithmus auf dem Diabetes-Datensatz berechnet werden kann. Der Lasso-Pfad ist ein Plot der Koeffizienten eines linearen Modells, wenn der L1-Regularisierungsparameter erhöht wird. Jede Farbe repräsentiert ein unterschiedliches Merkmal des Koeffizientenvektors, und dies wird als Funktion des Regularisierungsparameters dargestellt.

Tipps für die virtuelle Maschine

Nachdem der Start der virtuellen Maschine 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

Der erste Schritt besteht darin, den Diabetes-Datensatz aus Scikit-Learn zu laden.

from sklearn import datasets

X, y = datasets.load_diabetes(return_X_y=True)

Lasso-Pfad berechnen

Als nächstes berechnen wir den Lasso-Pfad mithilfe des LARS-Algorithmus. Die lars_path-Funktion aus dem linear_model-Modul von Scikit-Learn wird verwendet, um den Lasso-Pfad zu berechnen. Die Funktion nimmt die Eingabefeatures, die Zielvariable und die Methode als Parameter entgegen. In diesem Fall verwenden wir die Methode "lasso" für die L1-Regularisierung.

from sklearn import linear_model

_, _, coefs = linear_model.lars_path(X, y, method="lasso", verbose=True)

Lasso-Pfad plotten

Nachdem wir den Lasso-Pfad berechnet haben, plotten wir die Ergebnisse. Die Koeffizienten für jedes Merkmal werden als Funktion des Regularisierungsparameters geplottet.

import numpy as np
import matplotlib.pyplot as plt

xx = np.sum(np.abs(coefs.T), axis=1)
xx /= xx[-1]

plt.plot(xx, coefs.T)
ymin, ymax = plt.ylim()
plt.vlines(xx, ymin, ymax, linestyle="dashed")
plt.xlabel("|coef| / max|coef|")
plt.ylabel("Koeffizienten")
plt.title("LASSO-Pfad")
plt.axis("tight")
plt.show()

Ergebnisse interpretieren

Das resultierende Diagramm zeigt den Lasso-Pfad für den Diabetes-Datensatz. Jede Farbe repräsentiert ein unterschiedliches Merkmal des Koeffizientenvektors, und dies wird als Funktion des Regularisierungsparameters dargestellt. Wenn der Regularisierungsparameter zunimmt, schrumpfen die Koeffizienten für einige Merkmale gegen Null, was darauf hindeutet, dass diese Merkmale für die Vorhersage der Zielvariable weniger wichtig sind.

Zusammenfassung

In diesem Lab haben wir gezeigt, wie man den Lasso-Pfad mithilfe des LARS-Algorithmus auf dem Diabetes-Datensatz berechnet und plotten kann. Der Lasso-Pfad ist eine nützliche Visualisierung, um die Auswirkungen der L1-Regularisierung auf die Koeffizienten eines linearen Modells zu verstehen.