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.