Einführung
In diesem Lab lernen wir, wie wir den Entscheidungsbaum-Regressionsalgorithmus verwenden, um eine Sinuskurve mit zusätzlichen rauschenden Beobachtungen anzupassen. Die Entscheidungsbäume werden verwendet, um lokale lineare Regressionen zu lernen, die der Sinuskurve approximieren. Wir werden sehen, dass, wenn die maximale Tiefe des Baumes zu hoch eingestellt wird, die Entscheidungsbäume zu viele Details der Trainingsdaten lernen und von den Rauschen lernen, d.h. sie überanpassen.
VM-Tipps
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 öffnen.
Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund von 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.
Importiere erforderliche Bibliotheken
Wir werden die erforderlichen Bibliotheken und Module importieren, einschließlich von numpy, matplotlib und DecisionTreeRegressor.
import numpy as np
from sklearn.tree import DecisionTreeRegressor
import matplotlib.pyplot as plt
Erzeuge einen zufälligen Datensatz
Wir werden einen zufälligen Datensatz mit NumPy erstellen und ihm etwas Rauschen hinzufügen.
rng = np.random.RandomState(1)
X = np.sort(5 * rng.rand(80, 1), axis=0)
y = np.sin(X).ravel()
y[::5] += 3 * (0.5 - rng.rand(16))
Regressionmodell anpassen
Wir werden Regressionmodelle mit zwei verschiedenen maximalen Tiefen anpassen: 2 und 5.
regr_1 = DecisionTreeRegressor(max_depth=2)
regr_2 = DecisionTreeRegressor(max_depth=5)
regr_1.fit(X, y)
regr_2.fit(X, y)
Vorhersagen
Wir werden die Modelle verwenden, um Vorhersagen für einen Wertebereich von 0 bis 5 zu treffen.
X_test = np.arange(0.0, 5.0, 0.01)[:, np.newaxis]
y_1 = regr_1.predict(X_test)
y_2 = regr_2.predict(X_test)
Zeichne die Ergebnisse
Wir werden die Ergebnisse plotten, um zu visualisieren, wie die Modelle die Daten anpassen.
plt.figure()
plt.scatter(X, y, s=20, edgecolor="black", c="darkorange", label="data")
plt.plot(X_test, y_1, color="cornflowerblue", label="max_depth=2", linewidth=2)
plt.plot(X_test, y_2, color="yellowgreen", label="max_depth=5", linewidth=2)
plt.xlabel("data")
plt.ylabel("target")
plt.title("Decision Tree Regression")
plt.legend()
plt.show()
Zusammenfassung
In diesem Lab haben wir gelernt, wie man den Entscheidungsbaum-Regressionsalgorithmus verwendet, um eine Sinuskurve mit zusätzlichen rauschenden Beobachtungen anzupassen. Wir haben gesehen, dass, wenn die maximale Tiefe des Baumes zu hoch eingestellt wird, die Entscheidungsbäume zu detaillierte Details der Trainingsdaten lernen und von den Rauschen lernen, d.h. sie überanpassen. Wir haben auch gelernt, wie man die Ergebnisse plotten kann, um zu visualisieren, wie die Modelle die Daten anpassen.