Grid Search mit XGBoost
Nachdem du gelernt hast, einzelne Parameter mit XGBoost zu tunen, heben wir das Tuning jetzt eine Stufe höher: mit den GridSearch- und RandomizedSearch-Funktionen von scikit-learn samt interner Cross-Validation über GridSearchCV und RandomizedSearchCV. Damit suchst du über mehrere Parameter hinweg systematisch in einer Menge möglicher Werte nach dem besten Modell. Legen wir los – zunächst mit GridSearchCV!
Diese Übung ist Teil des Kurses
Extreme Gradient Boosting mit XGBoost
Anleitung zur Übung
- Erstelle ein Parameter-Grid namens
gbm_param_grid, das eine Liste von"colsample_bytree"-Werten (0.3,0.7), eine Liste mit einem einzelnen Wert für"n_estimators"(50) und eine Liste mit 2"max_depth"-Werten (2,5) enthält. - Instanziiere ein
XGBRegressor-Objekt namensgbm. - Erstelle ein
GridSearchCV-Objekt namensgrid_mseund übergib: das Parameter-Grid anparam_grid, denXGBRegressoranestimator,"neg_mean_squared_error"anscoringund4ancv. Gib außerdemverbose=1an, damit du die Ausgaben besser nachvollziehen kannst. - Fitte das
GridSearchCV-Objekt anXundy. - Gib die besten Parameterwerte und die niedrigste RMSE aus, und zwar über die Attribute
.best_params_bzw..best_score_vongrid_mse.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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(____)))