ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Crea una malla de parámetros llamada gbm_param_grid que 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 XGBRegressor llamado gbm.
  • Crea un objeto GridSearchCV llamado grid_mse, pasando: la malla de parámetros en param_grid, el XGBRegressor en estimator, "neg_mean_squared_error" en scoring y 4 en cv. Especifica también verbose=1 para entender mejor la salida.
  • Ajusta el objeto GridSearchCV a X y y.
  • Imprime los mejores valores de parámetros y el RMSE más bajo utilizando, respectivamente, los atributos .best_params_ y .best_score_ de grid_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(____)))
Editar y ejecutar código