Kaggle Tutorial

3大 GBDT 比較・使い分け・重要パラメータ

XGBoost / LightGBM / CatBoost の特徴と使い分け、共通する重要パラメータと早期終了を整理します。

3 大 GBDT の比較#

観点XGBoostLightGBMCatBoost
速度標準高速標準
木の成長level-wiseleaf-wisesymmetric(対称木)
カテゴリ要エンコードcategory 型対応自動処理が強力
既定の強さ要調整要調整デフォルトが強い
複雑さの主パラメータmax_depthnum_leavesdepth

使い分けの目安#

  • まず速く回したい / 大規模LightGBM
  • カテゴリが多い / 調整を最小化CatBoost
  • 実績ある安定択 / 細かく正則化XGBoost

最終的には複数を学習し、ブレンディングスタッキングで混ぜると単体より安定して伸びます。

共通する重要パラメータ#

概念XGBoostLightGBMCatBoost
学習率learning_ratelearning_ratelearning_rate
木の本数n_estimatorsn_estimatorsiterations
木の複雑さmax_depthnum_leavesdepth
行サンプリングsubsamplesubsamplesubsample
列サンプリングcolsample_bytreecolsample_bytreersm
L2 正則化reg_lambdareg_lambdal2_leaf_reg

早期終了は全部で使う#

どの実装でも、大きめの木数を設定して早期終了に最適本数を決めさせるのが定石です。 検証スコアが改善しなくなった時点で止めることで、過学習を防ぎつつ最良の本数を得られます。

ヒント

調整は「学習率を小さめに固定 → 木の複雑さ(深さ/num_leaves)→ サンプリング → 正則化」の順に 交差検証で詰めると効率的です。学習率は最後にさらに下げて本数を増やすと、もうひと伸びします。

理解度チェック#

Quiz「大規模データを高速に回したい」ときにまず選ぶ GBDT 実装は?

次のステップ#

最後に、これらのパラメータを効率的に探索するハイパーパラメータ最適化を学びます。