1. 학습
  2. /
  3. 강의
  4. /
  5. XGBoost で学ぶ極限の勾配ブースティング

Connected

연습 문제

early_stopping を使ったブースティング回数の自動選択

これまでのように最適なブースティング回数を手作業で選ぶ代わりに、xgb.cv() の中で XGBoost に自動でブースティング回数を選ばせることができます。これは early stopping と呼ばれる手法で実現します。

Early stopping は、各ブースティングラウンドの後にホールドアウトデータに対して XGBoost モデルを評価し、ある一定のラウンド数の間ホールドアウト指標(ここでは "rmse")が改善しなければ、それ以上のブースティングラウンドの作成を停止(つまり学習を早めに打ち切り)します。ここでは xgb.cv() の early_stopping_rounds パラメータを使い、ブースティング回数の上限を大きめ(50)に設定します。なお、ホールドアウト指標が num_boost_rounds に到達するまで改善し続けた場合は、early stopping は発生しません。

ここでは、DMatrix とパラメータ辞書は用意済みです。あなたのタスクは、early stopping を用いた交差検証を実行することです。さあ、やってみましょう!

지침

100 XP
  • 3 分割の交差検証を early stopping ありで実行し、指標は "rmse" にします。early_stopping_rounds は 10、ブースティング回数は 50 に設定します。seed は 123 を指定し、出力が pandas の DataFrame になるようにします。dtrain、params、metrics などの他のパラメータの指定も忘れないでください。
  • cv_results を出力してください。