メインコンテンツまでスキップ

XGBoost

Try in a Colab Notebook here →

wandb ライブラリには、XGBoostを使用したトレーニングからメトリクス、設定、保存されたブースターをログに記録するための WandbCallback コールバックがあります。ここでは、XGBoostの WandbCallback の出力を含む ライブ Weights & Biases ダッシュボード を見ることができます。

Weights & Biases ダッシュボード using XGBoost

はじめに

XGBoostのメトリクス、設定、ブースターモデルをWeights & Biasesにログとして記録するのは、WandbCallback をXGBoostに渡すだけで簡単にできます:

from wandb.integration.xgboost import WandbCallback
import xgboost as XGBClassifier

...
# wandb run を開始
run = wandb.init()

# モデルにWandbCallbackを渡す
bst = XGBClassifier()
bst.fit(X_train, y_train, callbacks=[WandbCallback(log_model=True)])

# wandb run を終了
run.finish()

XGBoostとWeights & Biasesでのログ記録について詳しく知りたい方は、このノートブック をご覧ください。

WandbCallback

機能

WandbCallback をXGBoostモデルに渡すことで:

  • ブースターモデルの設定をWeights & Biasesにログします
  • XGBoostによって収集された評価メトリクス(例えばrmse、accuracyなど)をWeights & Biasesにログします
  • XGBoostによって収集されたトレーニングメトリクス(eval_setにデータを提供した場合)をログします
  • 最良のスコアと最良のイテレーションをログします
  • トレーニング済みモデルをWeights & Biases Artifactsに保存・アップロードします(log_model = True の場合)
  • log_feature_importance=True(デフォルト)の場合、特徴量のインポータンスプロットをログします
  • define_metric=True(デフォルト)の場合、wandb.summary に最良の評価メトリクスをキャプチャします

引数

log_model: (boolean) Trueの場合、モデルを保存してWeights & Biases Artifactsにアップロードします

log_feature_importance: (boolean) Trueの場合、特徴量のインポータンスバープロットをログします

importance_type: (str) {weight, gain, cover, total_gain, total_cover} のいずれか(ツリーモデルの場合)。線形モデルの場合はweight。

define_metric: (boolean) True(デフォルト)の場合、トレーニングの最終ステップではなく最良のステップでのモデル性能を wandb.summary にキャプチャします

WandbCallback のソースコードは こちら で見つけることができます。

備考

さらに動作するコード例を探している方は、GitHubの例のリポジトリ をチェックするか、Colabノートブック を試してみてください。

Sweepsを使ったハイパーパラメータのチューニング

モデルの最大性能を引き出すには、ツリーの深さや学習率などのハイパーパラメータをチューニングする必要があります。Weights & Biases では、大規模なハイパーパラメータテストの実験を設定、調整、分析するための強力なツールキットである Sweeps を提供しています。

備考

これらのツールについてさらに学び、XGBoostとSweepsを使った例を見てみたい方は、このインタラクティブなColabノートブック をチェックするか、XGBoost & Sweeps のこのpythonスクリプト を試してください。

tl;dr: trees outperform linear learners on this classification dataset.

Was this page helpful?👍👎