Visualizando árvores individuais do XGBoost
Agora que você usou o XGBoost para criar e avaliar modelos de regressão e também de classificação, é hora de aprender a explorar visualmente seus modelos. Aqui, você vai visualizar árvores individuais do modelo totalmente impulsionado (boosted) que o XGBoost cria usando todo o conjunto de dados de habitação.
O XGBoost tem a função plot_tree() que facilita esse tipo de visualização. Depois de treinar um modelo usando a API de aprendizado do XGBoost, você pode passá-lo para a função plot_tree() junto com o número de árvores que deseja plotar usando o argumento num_trees.
Este exercício faz parte do curso
Extreme Gradient Boosting com XGBoost
Instruções do exercício
- Crie um dicionário de parâmetros com
"objective"igual a"reg:squarederror"e"max_depth"igual a2. - Treine o modelo usando
10rodadas de boosting e o dicionário de parâmetros que você criou. Salve o resultado emxg_reg. - Plote a primeira árvore usando
xgb.plot_tree(). Ela recebe dois argumentos: o modelo (neste caso,xg_reg) enum_trees, que é indexado a partir de 0. Então, para plotar a primeira árvore, informenum_trees=0. - Plote a quinta árvore.
- Plote a última (décima) árvore na horizontal. Para isso, especifique o argumento adicional
rankdir="LR".
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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()