Căutare în grilă cu XGBoost
Acum că ai învățat să ajustezi parametrii individual în XGBoost, e momentul să duci optimizarea la nivelul următor folosind capabilitățile GridSearch și RandomizedSearch din scikit-learn, cu validare încrucișată internă prin funcțiile GridSearchCV și RandomizedSearchCV. Le vei folosi pentru a identifica exhaustiv cel mai bun model dintr-o colecție de valori posibile pentru mai mulți parametri simultan. Să începem cu GridSearchCV!
Acest exercițiu face parte din cursul
Gradient Boosting Extrem cu XGBoost
Instrucțiuni pentru exercițiu
- Creează o grilă de parametri numită
gbm_param_grid, care să conțină o listă de valori pentru"colsample_bytree"(0.3,0.7), o listă cu o singură valoare pentru"n_estimators"(50) și o listă cu 2 valori pentru"max_depth"(2,5). - Instanțiază un obiect
XGBRegressornumitgbm. - Creează un obiect
GridSearchCVnumitgrid_mse, pasând: grila de parametri laparam_grid, obiectulXGBRegressorlaestimator,"neg_mean_squared_error"lascoringși4lacv. Specifică șiverbose=1pentru a înțelege mai bine rezultatele afișate. - Antrenează obiectul
GridSearchCVpeXșiy. - Afișează cele mai bune valori ale parametrilor și cel mai mic RMSE, folosind atributele
.best_params_și, respectiv,.best_score_ale obiectuluigrid_mse.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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(____)))