IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Crea una griglia di parametri chiamata gbm_param_grid che 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 XGBRegressor chiamato gbm.
  • Crea un oggetto GridSearchCV chiamato grid_mse, passando: la griglia di parametri a param_grid, l'XGBRegressor a estimator, "neg_mean_squared_error" a scoring e 4 a cv. Specifica anche verbose=1 così potrai comprendere meglio l'output.
  • Esegui il fit dell'oggetto GridSearchCV su X e y.
  • Stampa i valori dei parametri migliori e la RMSE più bassa, usando rispettivamente gli attributi .best_params_ e .best_score_ di grid_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(____)))
Modifica ed esegui il codice