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

Tinh chỉnh eta

Đến lúc bạn thực hành tinh chỉnh các siêu tham số khác của XGBoost một cách nghiêm túc và quan sát tác động của chúng lên hiệu năng mô hình! Bạn sẽ bắt đầu bằng cách tinh chỉnh "eta", hay còn gọi là learning rate.

Learning rate trong XGBoost là một tham số có thể nằm trong khoảng từ 0 đến 1, với giá trị "eta" càng cao thì càng phạt mạnh trọng số của đặc trưng, dẫn đến regularization mạnh hơn nhiều.

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 list tên eta_vals để lưu các giá trị "eta" sau: 0.001, 0.01, và 0.1.
  • Lặp qua list eta_vals của bạn bằng vòng lặp for.
  • Ở mỗi vòng lặp for, đặt khóa "eta" của params bằng curr_val. Sau đó, thực hiện cross-validation 3-fold với early stopping (5 vòng), 10 vòng boosting, metric là "rmse", và seed123. Đảm bảo đầu ra là một DataFrame.
  • Thêm (append) giá trị RMSE ở vòng cuối vào list best_rmse.

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 your housing DMatrix: housing_dmatrix
housing_dmatrix = xgb.DMatrix(data=X, label=y)

# Create the parameter dictionary for each tree (boosting round)
params = {"objective":"reg:squarederror", "max_depth":3}

# Create list of eta values and empty list to store final round rmse per xgboost model
____ = [____, ____, ____]
best_rmse = []

# Systematically vary the eta 
for curr_val in ____:

    params["___"] = curr_val
    
    # Perform cross-validation: cv_results
    cv_results = ____
    
    
    
    # Append the final round rmse to best_rmse
    ____.____(____["____"].tail().values[-1])

# Print the resultant DataFrame
print(pd.DataFrame(list(zip(eta_vals, best_rmse)), columns=["eta","best_rmse"]))
Chỉnh sửa và Chạy Mã