Vizualizace jednotlivých stromů XGBoost
Teď, když jsi pomocí XGBoost sestavil/a a vyhodnotil/a jak regresní, tak klasifikační modely, je čas naučit se, jak modely vizuálně prozkoumávat. V tomto cvičení vizualizuješ jednotlivé stromy z plně naboostovaného modelu, který XGBoost vytvoří na základě celé datové sady o cenách nemovitostí.
XGBoost nabízí funkci plot_tree(), která tento typ vizualizace usnadňuje. Po natrénování modelu pomocí učicího API XGBoost ho můžeš předat funkci plot_tree() spolu s počtem stromů, které chceš vykreslit, prostřednictvím argumentu num_trees.
Toto cvičení je součástí kurzu
Extreme Gradient Boosting with XGBoost
Pokyny k cvičení
- Vytvoř slovník parametrů s hodnotou
"objective"nastavenou na"reg:squarederror"a"max_depth"nastavenou na2. - Natrénuj model s použitím
10boostovacích kol a slovníku parametrů, který jsi právě vytvořil/a. Výsledek ulož do proměnnéxg_reg. - Vykresli první strom pomocí
xgb.plot_tree(). Funkce přijímá dva argumenty – model (v tomto případěxg_reg) anum_trees, přičemž indexování začíná od nuly. Pro vykreslení prvního stromu tedy zadejnum_trees=0. - Vykresli pátý strom.
- Vykresli poslední (desátý) strom otočený na bok. K tomu přidej klíčový argument
rankdir="LR".
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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()