Bắt đầu ngayBắt đầu miễn phí

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

Xem khóa học

Hướng dẫn bài tập

  • Tạo lưới tham số tên gbm_param_grid gồ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 đến 11 cho 'max_depth' - dùng range(2, 12) cho phần này.
  • Tạo một đối tượng RandomizedSearchCV tên randomized_mse, truyền vào: lưới tham số cho param_distributions, XGBRegressor cho estimator, "neg_mean_squared_error" cho scoring, 5 cho n_iter, và 4 cho cv. Đồng thời chỉ định verbose=1 để bạn dễ hiểu đầu ra hơn.
  • Fit đối tượng RandomizedSearchCV với Xy.

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_)))
Chỉnh sửa và Chạy Mã