メインコンテンツへスキップ
このページでは、XGBoost と W&B のインテグレーションを使用して、勾配ブースティングのメトリクス、モデルの設定、特徴量重要度、トレーニング済みの booster を自動的にログし、XGBoost の Experiments をトラッキング、比較、再現する方法を紹介します。 W&B Python SDK (wandb) には、XGBoost でのトレーニング中にメトリクス、設定、保存済みの booster をログするための WandbCallback コールバックがあります。ここでは、XGBoost の WandbCallback による出力を確認できる ライブの W&B ダッシュボード を参照できます。
XGBoost を使用した W&B ダッシュボード

はじめに

W&B に XGBoost のメトリクス、設定、booster モデルをログするには、WandbCallback を XGBoost に渡します。
XGBoost と W&B でのログ記録の詳細については、XGBoost と W&B のログ記録ノートブックをご覧ください。

WandbCallback リファレンス

機能

WandbCallback を XGBoost モデルに渡すと、次の処理が行われます。
  • Booster モデルの設定を W&B にログします。
  • rmse や accuracy など、XGBoost が収集した評価メトリクスを W&B にログします。
  • XGBoost が収集したトレーニング メトリクスを W&B にログします (eval_set にデータを指定した場合) 。
  • 最良のスコアと最良のイテレーションをログします。
  • トレーニング済みモデルを W&B Artifacts に保存してアップロードします (log_model = True の場合) 。
  • log_feature_importance=True の場合、特徴量重要度プロットをログします (デフォルト) 。
  • define_metric=True の場合、最良の eval メトリクスを wandb.Run.summary に取得します (デフォルト) 。

引数

  • log_model: (boolean) True の場合、モデルを W&B Artifacts に保存してアップロードします。
  • log_feature_importance: (boolean) True の場合、特徴量重要度の棒グラフをログします。
  • importance_type: (str) ツリーモデルでは {weight, gain, cover, total_gain, total_cover} のいずれかです。線形モデルでは weight です。
  • define_metric: (boolean) True の場合 (デフォルト) 、run.summary には、トレーニングの最後のステップではなく最良のステップでのモデル性能が取得されます。
WandbCallback のソースコードを確認してください。 その他の例については、GitHub の examples リポジトリを参照してください。

Sweeps でハイパーパラメーターを調整する

W&B Sweeps は、ハイパーパラメーター探索の experiment を設定、実行、分析するためのツールキットです。このセクションでは、XGBoost インテグレーションと W&B Sweeps を組み合わせて、さまざまなハイパーパラメーター設定を探索する方法を示します。 モデル性能を向上させるには、決定木の深さや学習率などのハイパーパラメーターを調整します。 この XGBoost と Sweeps の Python スクリプト を試すこともできます。
XGBoost のパフォーマンス比較