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

Tìm kiếm theo lưới với XGBoost

Giờ bạn đã biết cách tinh chỉnh từng tham số riêng lẻ trong XGBoost, hãy nâng cấp việc tinh chỉnh bằng cách dùng GridSearchRandomizedSearch của scikit-learn với cross-validation nội bộ thông qua các hàm GridSearchCVRandomizedSearchCV. Bạn sẽ dùng chúng để tìm ra mô hình tốt nhất một cách toàn diện từ tập các giá trị tham số có thể có, đồng thời trên nhiều tham số. Bắt đầu thôi, với GridSearchCV!

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 một lưới tham số tên gbm_param_grid chứa danh sách các giá trị "colsample_bytree" (0.3, 0.7), một danh sách chỉ có một giá trị cho "n_estimators" (50), và danh sách 2 giá trị "max_depth" (2, 5).
  • Khởi tạo một đối tượng XGBRegressor tên gbm.
  • Tạo một đối tượng GridSearchCV tên grid_mse, truyền vào: lưới tham số cho param_grid, XGBRegressor cho estimator, "neg_mean_squared_error" cho scoring, và 4 cho cv. Đồng thời đặt verbose=1 để bạn dễ hiểu đầu ra hơn.
  • Fit đối tượng GridSearchCV vào Xy.
  • In ra các giá trị tham số tốt nhất và RMSE thấp nhất, lần lượt dùng thuộc tính .best_params_.best_score_ của grid_mse.

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 = ____

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