Căutare aleatorie cu XGBoost
Adesea, GridSearchCV poate consuma mult timp, așa că în practică s-ar putea să preferi RandomizedSearchCV. Vestea bună este că trebuie să faci doar câteva modificări față de codul scris pentru GridSearchCV. Diferența esențială constă în faptul că trebuie să specifici parametrul param_distributions în loc de param_grid.
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 conține o listă cu o singură valoare pentru'n_estimators'(25) și o listă de valori'max_depth'între2și11— foloseșterange(2, 12)pentru aceasta. - Creează un obiect
RandomizedSearchCVnumitrandomized_mse, pasând: grila de parametri laparam_distributions,XGBRegressorlaestimator,"neg_mean_squared_error"lascoring,5lan_iterși4lacv. Specifică șiverbose=1pentru a înțelege mai bine rezultatele afișate. - Antrenează obiectul
RandomizedSearchCVpeXșiy.
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 = xgb.XGBRegressor(n_estimators=10)
# Perform random search: grid_mse
randomized_mse = ____
# Fit randomized_mse to the data
____
# Print the best parameters and lowest RMSE
print("Best parameters found: ", randomized_mse.best_params_)
print("Lowest RMSE found: ", np.sqrt(np.abs(randomized_mse.best_score_)))