Grid search met XGBoost
Nu je hebt geleerd hoe je parameters afzonderlijk kunt afstemmen met XGBoost, tillen we je parameter-tuning naar een hoger niveau met de GridSearch- en RandomizedSearch-mogelijkheden van scikit-learn, met interne cross-validatie via de functies GridSearchCV en RandomizedSearchCV. Je gebruikt deze om het beste model te vinden uit een verzameling mogelijke parameterwaarden, over meerdere parameters tegelijk. Aan de slag — we beginnen met GridSearchCV!
Deze oefening maakt deel uit van de cursus
Extreme Gradient Boosting met XGBoost
Oefeninstructies
- Maak een parameterrooster
gbm_param_gridmet een lijst van"colsample_bytree"-waarden (0.3,0.7), een lijst met één waarde voor"n_estimators"(50), en een lijst met 2"max_depth"-waarden (2,5). - Instantieer een
XGBRegressor-object met de naamgbm. - Maak een
GridSearchCV-objectgrid_mseen geef door: het parameterrooster aanparam_grid, deXGBRegressoraanestimator,"neg_mean_squared_error"aanscoring, en4aancv. Specificeer ookverbose=1zodat je de uitvoer beter kunt begrijpen. - Fit het
GridSearchCV-object opXeny. - Print de beste parameterwaarden en de laagste RMSE met respectievelijk de attributen
.best_params_en.best_score_vangrid_mse.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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(____)))