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
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_depthscủa bạn bằng một vòng lặpfor. - 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 (5vòng),10vòng boosting, metric"rmse", vàseedbằng123. Đả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"]))