メインコンテンツへスキップ
wandb ライブラリには、XGBoost でのトレーニング中にメトリクス、設定、保存済みの booster をログするための WandbCallback コールバックがあります。ここでは、XGBoost の WandbCallback による出力を確認できる ライブの W&B ダッシュボード を参照できます。
XGBoost を使用した W&B ダッシュボード

はじめに

W&B に XGBoost のメトリクス、設定、booster モデルをログするには、WandbCallback を XGBoost に渡すだけです:
from wandb.integration.xgboost import WandbCallback
import xgboost as XGBClassifier

...
# wandb の run を開始する
with wandb.init() as run:
  # WandbCallback をモデルに渡す
  bst = XGBClassifier()
  bst.fit(X_train, y_train, callbacks=[WandbCallback(log_model=True)])
XGBoost と W&B でログする内容を包括的に確認するには、このノートブックを開いてください

WandbCallback リファレンス

機能

WandbCallback を XGBoost モデルに渡すと、次の処理が行われます。
  • booster モデルの設定を W&B にログします
  • rmse や accuracy など、XGBoost が収集した評価メトリクスを W&B にログします
  • XGBoost が収集したトレーニングメトリクスをログします (eval_set にデータを指定した場合)
  • 最良のスコアと最良のイテレーションをログします
  • トレーニング済みのモデルを W&B Artifacts に保存してアップロードします (log_model = True の場合)
  • log_feature_importance=True の場合、特徴量重要度プロットをログします (デフォルト) 。
  • define_metric=True の場合、最良の評価メトリクスを 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 にはトレーニングの最後の step ではなく、最良の step におけるモデル性能を記録します。
WandbCallback のソースコードを確認できます。 追加の例については、GitHub 上のサンプルリポジトリを参照してください。

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

モデルから最大限のパフォーマンスを引き出すには、決定木の深さや学習率などのハイパーパラメーターを調整する必要があります。W&B Sweeps は、大規模なハイパーパラメーター探索の experiment を設定、実行、分析するための強力なツールキットです。 この XGBoost と Sweeps の Python スクリプト を試すこともできます。
XGBoost のパフォーマンス比較