Przeszukiwanie siatki z XGBoost
Wiesz już, jak dostrajać parametry XGBoost pojedynczo. Czas pójść o krok dalej – wykorzystaj możliwości GridSearch i RandomizedSearch z biblioteki scikit-learn, wzbogacone o wewnętrzną walidację krzyżową realizowaną przez funkcje GridSearchCV i RandomizedSearchCV. Dzięki nim znajdziesz najlepszy model, przeszukując wyczerpująco wszystkie kombinacje wartości wielu parametrów jednocześnie. Zacznijmy od GridSearchCV!
To ćwiczenie jest częścią kursu
Extreme Gradient Boosting with XGBoost
Instrukcje do ćwiczenia
- Utwórz siatkę parametrów o nazwie
gbm_param_grid, która zawiera: listę wartości"colsample_bytree"(0.3,0.7), listę z pojedynczą wartością"n_estimators"(50) oraz listę 2 wartości"max_depth"(2,5). - Utwórz instancję obiektu
XGBRegressoro nazwiegbm. - Utwórz obiekt
GridSearchCVo nazwiegrid_mse, przekazując: siatkę parametrów doparam_grid, obiektXGBRegressordoestimator,"neg_mean_squared_error"doscoringoraz4docv. Podaj teżverbose=1, aby lepiej śledzić wyniki. - Dopasuj obiekt
GridSearchCVdoXiy. - Wyświetl najlepsze wartości parametrów oraz najniższy wynik RMSE, korzystając odpowiednio z atrybutów
.best_params_i.best_score_obiektugrid_mse.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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(____)))