1. Learn
  2. /
  3. Courses
  4. /
  5. XGBoost で学ぶ極限の勾配ブースティング

Connected

Exercise

ブースティングラウンド数のチューニング

まずは、ブースティングラウンド数(構築する木の本数)が、XGBoost モデルの汎化性能にどう影響するかを見ていきましょう。for ループ内で xgb.cv() を使い、num_boost_round ごとに1つずつモデルを学習します。

ここでは Ames 住宅価格データセットを引き続き使用します。特徴量は配列 X に、目的変数はベクトル y に格納されています。

Instructions

100 XP
  • X と y から DMatrix を作成し、housing_dmatrix という名前を付けます。
  • params という名前のパラメータ辞書を作成し、適切な "objective"("reg:squarederror")と "max_depth"(3 に設定)を指定します。
  • for ループで num_rounds を反復し、3 分割の交差検証を実行します。各反復で、現在のブースティングラウンド数(curr_num_rounds)を xgb.cv() の num_boost_round 引数に渡します。
  • 各クロスバリデーション済み XGBoost モデルの最終ラウンドの RMSE を、final_rmse_per_round リストに追加します。
  • num_rounds と final_rmse_per_round は zip して DataFrame に変換済みです。ラウンド数ごとのモデル性能を簡単に確認できます。"Submit Answer" を押して結果を見てみましょう!