Visualizar árboles individuales de XGBoost
Ahora que has usado XGBoost para crear y evaluar modelos de regresión y también de clasificación, es buen momento para aprender a explorar visualmente tus modelos. Aquí, vas a visualizar árboles individuales del modelo completamente potenciado que XGBoost crea usando todo el conjunto de datos de viviendas.
XGBoost tiene una función plot_tree() que facilita este tipo de visualización. Una vez que entrenas un modelo usando la API de aprendizaje de XGBoost, puedes pasarlo a la función plot_tree() junto con el número de árboles que quieres graficar mediante el argumento num_trees.
Este ejercicio forma parte del curso
Extreme Gradient Boosting con XGBoost
Instrucciones del ejercicio
- Crea un diccionario de parámetros con
"objective"igual a"reg:squarederror"y"max_depth"igual a2. - Entrena el modelo usando
10rondas de boosting y el diccionario de parámetros que creaste. Guarda el resultado enxg_reg. - Grafica el primer árbol usando
xgb.plot_tree(). Acepta dos argumentos: el modelo (en este caso,xg_reg) ynum_trees, que comienza en 0. Así que, para graficar el primer árbol, indicanum_trees=0. - Grafica el quinto árbol.
- Grafica el último (décimo) árbol en orientación horizontal. Para hacerlo, especifica el argumento adicional
rankdir="LR".
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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()