Individuele XGBoost-bomen visualiseren
Nu je XGBoost hebt gebruikt om zowel regressie- als classificatiemodellen te bouwen en te evalueren, is het tijd om te leren hoe je je modellen visueel kunt verkennen. Hier visualiseer je losse bomen uit het volledig gebooste model dat XGBoost maakt met de volledige woninggegevensset.
XGBoost heeft een plot_tree()-functie die dit soort visualisaties eenvoudig maakt. Zodra je een model traint met de XGBoost Learning API, kun je het doorgeven aan de functie plot_tree() samen met het aantal bomen dat je wilt plotten via het argument num_trees.
Deze oefening maakt deel uit van de cursus
Extreme Gradient Boosting met XGBoost
Oefeninstructies
- Maak een parameterdictionary met een
"objective"van"reg:squarederror"en een"max_depth"van2. - Train het model met
10boostingrondes en de parameterdictionary die je hebt gemaakt. Sla het resultaat op inxg_reg. - Plot de eerste boom met
xgb.plot_tree(). Deze neemt twee argumenten: het model (hierxg_reg) ennum_trees, dat 0-gebaseerd is. Dus om de eerste boom te plotten, geef jenum_trees=0op. - Plot de vijfde boom.
- Plot de laatste (tiende) boom liggend. Doe dit door het extra keywordargument
rankdir="LR"te specificeren.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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()