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

Tinh chỉnh max_depth

Trong bài này, nhiệm vụ của bạn là tinh chỉnh max_depth, tham số quy định độ sâu tối đa mà mỗi cây trong một vòng boosting có thể phát triển tới. Giá trị nhỏ tạo ra cây nông hơn, còn giá trị lớn tạo ra cây sâu hơn.

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 danh sách tên max_depths để lưu các giá trị "max_depth": 2, 5, 10, và 20.
  • Lặp qua danh sách max_depths của bạn bằng một vòng lặp for.
  • Thay đổi có hệ thống "max_depth" ở mỗi lần lặp và thực hiện cross-validation 2-fold với early stopping (5 vòng), 10 vòng boosting, metric "rmse", và seed bằng 123. Đảm bảo đầu ra là một DataFrame.

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

# Create the parameter dictionary
params = {"objective":"reg:squarederror"}

# Create list of max_depth values
max_depths = ____
best_rmse = []

# Systematically vary the max_depth
for curr_val in ____:

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

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