Aan de slagBegin gratis

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

Bekijk cursus

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.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan 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