1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Gradient Boosting Cực Mạnh với XGBoost

Connected

Bài tập

Tự động chọn số vòng boosting bằng early_stopping

Giờ đây, thay vì cố gắng chọn thủ công số vòng boosting tối ưu, bạn có thể để XGBoost tự động chọn số vòng boosting cho bạn ngay trong xgb.cv(). Điều này được thực hiện bằng kỹ thuật gọi là early stopping.

Early stopping hoạt động bằng cách kiểm tra mô hình XGBoost sau mỗi vòng boosting trên một tập dữ liệu giữ lại (hold-out) và dừng việc tạo thêm các vòng boosting (tức kết thúc huấn luyện sớm) nếu metric trên tập giữ lại (trong trường hợp này là "rmse") không được cải thiện sau một số vòng nhất định. Ở đây bạn sẽ dùng tham số early_stopping_rounds trong xgb.cv() cùng với một số vòng boosting tối đa khá lớn (50). Lưu ý rằng nếu metric trên tập giữ lại liên tục được cải thiện cho đến khi chạm num_boost_rounds, thì early stopping sẽ không xảy ra.

Ở đây, DMatrix và từ điển tham số đã được tạo sẵn cho bạn. Nhiệm vụ của bạn là dùng cross-validation với early stopping. Bắt đầu thôi!

Hướng dẫn

100 XP
  • Thực hiện cross-validation 3-fold với early stopping và dùng "rmse" làm metric. Dùng 10 vòng early stopping và 50 vòng boosting. Chỉ định seed là 123 và đảm bảo đầu ra là một DataFrame của pandas. Nhớ chỉ định các tham số khác như dtrain, params, và metrics.
  • In cv_results.