Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Maak een parameterdictionary met een "objective" van "reg:squarederror" en een "max_depth" van 2.
  • Train het model met 10 boostingrondes en de parameterdictionary die je hebt gemaakt. Sla het resultaat op in xg_reg.
  • Plot de eerste boom met xgb.plot_tree(). Deze neemt twee argumenten: het model (hier xg_reg) en num_trees, dat 0-gebaseerd is. Dus om de eerste boom te plotten, geef je num_trees=0 op.
  • 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()
Code bewerken en uitvoeren