调优 max_depth
在本练习中,您的任务是调优 max_depth。该参数决定了在一次提升轮次中每棵树可以生长的最大深度。较小的取值会得到更浅的树,较大的取值会得到更深的树。
本练习是课程的一部分
使用 XGBoost 的极端梯度提升
练习说明
- 创建名为
max_depths的列表,保存以下"max_depth"取值:2、5、10和20。 - 使用
for循环遍历max_depths列表。 - 在
for循环的每次迭代中系统地改变"max_depth",并执行 2 折交叉验证,设置提前停止(5轮)、10个提升轮次、评估指标为"rmse",以及seed为123。确保输出为一个 DataFrame。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# 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"]))