メインコンテンツへスキップ
Colab で試す wandb ライブラリには、XGBoost での学習からメトリクス、設定、および保存されたブースターをログするための WandbCallback コールバックが用意されています。ここでは、XGBoost の WandbCallback による出力を表示するライブの W&B ダッシュボードを確認できます。
XGBoost を使用した W&B ダッシュボード

はじめに

XGBoost のメトリクス、設定、booster モデルを W&B にログするのは簡単で、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 にログします
  • XGBoost によって収集された rmse や accuracy などの評価メトリクスを W&B にログします
  • XGBoost によって収集された学習メトリクスを(eval_set にデータを指定した場合)W&B にログします
  • 最良スコアおよび最良イテレーションをログします
  • 学習済みモデルを保存し、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 には学習の最後のステップではなく、最良ステップ時点でのモデル性能を記録します。
WandbCallback のソースコードを参照できます。 さらに例が必要な場合は、GitHub 上の examples リポジトリを確認してください。

Sweeps を使ってハイパーパラメータをチューニングする

モデルから最大限の性能を引き出すには、木の深さや学習率のようなハイパーパラメータをチューニングする必要があります。W&B Sweeps は、大規模なハイパーパラメータテスト実験を構成・オーケストレーション・分析するための強力なツールキットです。 Colab で試す XGBoost と Sweeps の Python スクリプトも試すことができます。
XGBoost の性能比較