Aan de slagGa gratis aan de slag

Random search met XGBoost

GridSearchCV kan vaak erg veel tijd kosten. In de praktijk wil je daarom vaak RandomizedSearchCV gebruiken, zoals je in deze oefening doet. Goed nieuws: je hoeft maar een paar kleine aanpassingen te maken aan je GridSearchCV-code om RandomizedSearchCV te doen. Het belangrijkste verschil is dat je een parameter param_distributions moet opgeven in plaats van param_grid.

Deze oefening maakt deel uit van de cursus

Extreme Gradient Boosting met XGBoost

Cursus bekijken

Oefeninstructies

  • Maak een parametergrid met de naam gbm_param_grid dat een lijst bevat met één waarde voor 'n_estimators' (25), en een lijst met 'max_depth'-waarden tussen 2 en 11 voor 'max_depth' — gebruik hiervoor range(2, 12).
  • Maak een RandomizedSearchCV-object met de naam randomized_mse, en geef door: het parametergrid aan param_distributions, de XGBRegressor aan estimator, "neg_mean_squared_error" aan scoring, 5 aan n_iter, en 4 aan cv. Specificeer ook verbose=1 zodat je de output beter kunt begrijpen.
  • Fit het RandomizedSearchCV-object op X en y.

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 = 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_)))
Code bewerken en uitvoeren