XGBoost
Try in a Colab Notebook here →
wandb
ライブラリには、XGBoostを使用したトレーニングからメトリクス、設定、保存されたブースターをログに記録するための WandbCallback
コールバックがあります。ここでは、XGBoostの WandbCallback
の出力を含む ライブ Weights & Biases ダッシュボード を見ることができます。
はじめに
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スクリプト を試してください。