Visualizzare singoli alberi XGBoost
Ora che hai usato XGBoost per costruire e valutare modelli sia di regressione sia di classificazione, è il momento di imparare a esplorarli visivamente. Qui visualizzerai singoli alberi dal modello completamente potenziato che XGBoost crea utilizzando l'intero insieme di dati sulle case.
XGBoost dispone di una funzione plot_tree() che rende questo tipo di visualizzazione molto semplice. Dopo aver addestrato un modello usando la learning API di XGBoost, puoi passarlo a plot_tree() insieme al numero di alberi da tracciare tramite l'argomento num_trees.
Questo esercizio fa parte del corso
Extreme Gradient Boosting con XGBoost
Istruzioni dell'esercizio
- Crea un dizionario dei parametri con
"objective"impostato a"reg:squarederror"e"max_depth"impostato a2. - Addestra il modello usando
10round di boosting e il dizionario dei parametri che hai creato. Salva il risultato inxg_reg. - Traccia il primo albero usando
xgb.plot_tree(). Accetta due argomenti: il modello (in questo caso,xg_reg) enum_trees, che è indicizzato a partire da 0. Quindi, per tracciare il primo albero, specificanum_trees=0. - Traccia il quinto albero.
- Traccia l'ultimo (decimo) albero in orizzontale. Per farlo, specifica anche l'argomento
rankdir="LR".
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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()