始める無料で始める

max_depth のチューニング

この演習では、各ブースティングラウンドで生成される木の最大深さを決めるパラメータである max_depth をチューニングします。値が小さければ浅い木に、値が大きければ深い木になります。

この演習はコースの一部です

XGBoost で学ぶ極限の勾配ブースティング

コースを見る

演習の手順

  • max_depths というリストを作成し、次の "max_depth" の値を格納してください: 251020
  • for ループを使って max_depths リストを反復処理します。
  • for ループの各イテレーションで "max_depth" を系統的に変化させ、早期終了(5 ラウンド)付きの 2 分割交差検証、ブースティングラウンド数 10、評価指標 "rmse"seed123 で実行してください。出力は 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"]))
コードを編集して実行