max_depth のチューニング
この演習では、各ブースティングラウンドで生成される木の最大深さを決めるパラメータである max_depth をチューニングします。値が小さければ浅い木に、値が大きければ深い木になります。
この演習はコースの一部です
XGBoost で学ぶ極限の勾配ブースティング
演習の手順
max_depthsというリストを作成し、次の"max_depth"の値を格納してください:2、5、10、20。forループを使ってmax_depthsリストを反復処理します。forループの各イテレーションで"max_depth"を系統的に変化させ、早期終了(5ラウンド)付きの 2 分割交差検証、ブースティングラウンド数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"]))