Einzelne XGBoost-Bäume visualisieren
Jetzt, da du XGBoost sowohl zum Erstellen als auch zum Bewerten von Regressions- und Klassifikationsmodellen verwendet hast, solltest du lernen, deine Modelle visuell zu erkunden. Hier visualisierst du einzelne Bäume aus dem vollständig geboosteten Modell, das XGBoost mit dem gesamten Housing-Datensatz erstellt.
XGBoost hat eine Funktion plot_tree(), mit der diese Art der Visualisierung einfach wird. Sobald du ein Modell mit der XGBoost-Lern-API trainiert hast, kannst du es an die Funktion plot_tree() übergeben, zusammen mit der Anzahl der Bäume, die du mit dem Argument num_trees plotten möchtest.
Diese Übung ist Teil des Kurses
Extreme Gradient Boosting mit XGBoost
Anleitung zur Übung
- Erstelle ein Parameter-Wörterbuch mit einem
"objective"von"reg:squarederror"und einer"max_depth"von2. - Trainiere das Modell mit
10Boosting-Runden und dem von dir erstellten Parameter-Wörterbuch. Speichere das Ergebnis inxg_reg. - Plotte den ersten Baum mit
xgb.plot_tree(). Die Funktion nimmt zwei Argumente entgegen – das Modell (hierxg_reg) undnum_trees, das 0-basiert ist. Um den ersten Baum zu plotten, gibnum_trees=0an. - Plotte den fünften Baum.
- Plotte den letzten (zehnten) Baum horizontal. Gib dafür das zusätzliche Schlüsselwortargument
rankdir="LR"an.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Create the DMatrix: housing_dmatrix
housing_dmatrix = xgb.DMatrix(data=X, label=y)
# Create the parameter dictionary: params
params = {"objective":"reg:squarederror", "max_depth":2}
# Train the model: xg_reg
xg_reg = xgb.train(params=params, dtrain=housing_dmatrix, num_boost_round=10)
# Plot the first tree
____
plt.show()
# Plot the fifth tree
____
plt.show()
# Plot the last tree sideways
____
plt.show()