Beispiel für lineare Regression mit Sparsität

Beginner

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

Einführung

In diesem Lab wird gezeigt, wie mit Hilfe des Diabetes-Datensatzes aus scikit-learn lineare Regression mit Sparsität durchgeführt werden kann. Wir werden nur zwei Merkmale des Datensatzes verwenden und die Ergebnisse grafisch darstellen, um das Konzept der Sparsität zu veranschaulichen.

Tipps für die VM

Nachdem der Start der VM 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 von 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 schnellstmöglich beheben.

Lade den Diabetes-Datensatz

Zunächst laden wir den Diabetes-Datensatz aus scikit-learn und teilen ihn in Trainings- und Testsets auf.

from sklearn import datasets
import numpy as np

X, y = datasets.load_diabetes(return_X_y=True)
indices = (0, 1)

X_train = X[:-20, indices]
X_test = X[-20:, indices]
y_train = y[:-20]
y_test = y[-20:]

Trainiere ein lineares Regressionsmodell

Als nächstes trainieren wir ein lineares Regressionsmodell auf dem Trainingsset.

from sklearn import linear_model

ols = linear_model.LinearRegression()
_ = ols.fit(X_train, y_train)

Zeichne die Ergebnisse

Schließlich zeichnen wir die Ergebnisse aus drei verschiedenen Perspektiven, um das Konzept der Sparsität zu veranschaulichen.

import matplotlib.pyplot as plt

## unused but required import for doing 3d projections with matplotlib < 3.2
import mpl_toolkits.mplot3d  ## noqa: F401


def plot_figs(fig_num, elev, azim, X_train, clf):
    fig = plt.figure(fig_num, figsize=(4, 3))
    plt.clf()
    ax = fig.add_subplot(111, projection="3d", elev=elev, azim=azim)

    ax.scatter(X_train[:, 0], X_train[:, 1], y_train, c="k", marker="+")
    ax.plot_surface(
        np.array([[-0.1, -0.1], [0.15, 0.15]]),
        np.array([[-0.1, 0.15], [-0.1, 0.15]]),
        clf.predict(
            np.array([[-0.1, -0.1, 0.15, 0.15], [-0.1, 0.15, -0.1, 0.15]]).T
        ).reshape((2, 2)),
        alpha=0.5,
    )
    ax.set_xlabel("X_1")
    ax.set_ylabel("X_2")
    ax.set_zlabel("Y")
    ax.xaxis.set_ticklabels([])
    ax.yaxis.set_ticklabels([])
    ax.zaxis.set_ticklabels([])


## Generate the three different figures from different views
elev = 43.5
azim = -110
plot_figs(1, elev, azim, X_train, ols)

elev = -0.5
azim = 0
plot_figs(2, elev, azim, X_train, ols)

elev = -0.5
azim = 90
plot_figs(3, elev, azim, X_train, ols)

plt.show()

Zusammenfassung

In diesem Lab wurde gezeigt, wie mit Hilfe des Diabetes-Datensatzes aus scikit-learn lineare Regression mit Sparsität durchgeführt werden kann. Wir haben nur zwei Merkmale des Datensatzes verwendet und die Ergebnisse grafisch dargestellt, um das Konzept der Sparsität zu veranschaulichen.