Búsqueda en malla con XGBoost
Ahora que has aprendido a ajustar parámetros individualmente con XGBoost, llevemos el ajuste un paso más allá usando las capacidades de GridSearch y RandomizedSearch de scikit-learn con validación cruzada interna mediante las funciones GridSearchCV y RandomizedSearchCV. Las usarás para encontrar, de forma exhaustiva, el mejor modelo a partir de un conjunto de posibles valores de varios parámetros a la vez. ¡Manos a la obra, empezando por GridSearchCV!
Este ejercicio forma parte del curso
Extreme Gradient Boosting con XGBoost
Instrucciones del ejercicio
- Crea una malla de parámetros llamada
gbm_param_gridque contenga: una lista de valores para"colsample_bytree"(0.3,0.7), una lista con un único valor para"n_estimators"(50) y una lista de 2 valores para"max_depth"(2,5). - Instancia un objeto
XGBRegressorllamadogbm. - Crea un objeto
GridSearchCVllamadogrid_mse, pasando: la malla de parámetros enparam_grid, elXGBRegressorenestimator,"neg_mean_squared_error"enscoringy4encv. Especifica tambiénverbose=1para entender mejor la salida. - Ajusta el objeto
GridSearchCVaXyy. - Imprime los mejores valores de parámetros y el RMSE más bajo utilizando, respectivamente, los atributos
.best_params_y.best_score_degrid_mse.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Create the parameter grid: gbm_param_grid
gbm_param_grid = {
'____': [____, ____],
'____': [____],
'____': [____, ____]
}
# Instantiate the regressor: gbm
gbm = ____
# Perform grid search: grid_mse
grid_mse = ____
# Fit grid_mse to the data
____
# Print the best parameters and lowest RMSE
print("Best parameters found: ", ____)
print("Lowest RMSE found: ", np.sqrt(np.abs(____)))