Random search với XGBoost
Thường thì GridSearchCV rất tốn thời gian, nên trong thực tế bạn có thể muốn dùng RandomizedSearchCV thay thế, như bạn sẽ làm trong bài này. Tin tốt là bạn chỉ cần chỉnh sửa một chút từ mã GridSearchCV để dùng RandomizedSearchCV. Khác biệt quan trọng là bạn phải truyền tham số param_distributions thay vì param_grid.
Bài tập này là một phần của khóa học
Gradient Boosting Cực Mạnh với XGBoost
Hướng dẫn bài tập
- Tạo lưới tham số tên
gbm_param_gridgồm một danh sách với một giá trị duy nhất cho'n_estimators'(25), và một danh sách các giá trị'max_depth'từ2đến11cho'max_depth'- dùngrange(2, 12)cho phần này. - Tạo một đối tượng
RandomizedSearchCVtênrandomized_mse, truyền vào: lưới tham số choparam_distributions,XGBRegressorchoestimator,"neg_mean_squared_error"choscoring,5chon_iter, và4chocv. Đồng thời chỉ địnhverbose=1để bạn dễ hiểu đầu ra hơn. - Fit đối tượng
RandomizedSearchCVvớiXvày.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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_)))