Grid search con XGBoost
Ora che hai imparato a ottimizzare i singoli parametri con XGBoost, portiamo il tuning al livello successivo usando le funzionalità GridSearch e RandomizedSearch di scikit-learn con cross-validation interna tramite le funzioni GridSearchCV e RandomizedSearchCV. Le userai per trovare in modo esaustivo il modello migliore da una collezione di possibili valori su più parametri contemporaneamente. Mettiamoci al lavoro, a partire da GridSearchCV!
Questo esercizio fa parte del corso
Extreme Gradient Boosting con XGBoost
Istruzioni dell'esercizio
- Crea una griglia di parametri chiamata
gbm_param_gridche contenga: una lista di valori per"colsample_bytree"(0.3,0.7), una lista con un singolo valore per"n_estimators"(50), e una lista di 2 valori per"max_depth"(2,5). - Istanzia un oggetto
XGBRegressorchiamatogbm. - Crea un oggetto
GridSearchCVchiamatogrid_mse, passando: la griglia di parametri aparam_grid, l'XGBRegressoraestimator,"neg_mean_squared_error"ascoringe4acv. Specifica ancheverbose=1così potrai comprendere meglio l'output. - Esegui il fit dell'oggetto
GridSearchCVsuXey. - Stampa i valori dei parametri migliori e la RMSE più bassa, usando rispettivamente gli attributi
.best_params_e.best_score_digrid_mse.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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(____)))