勾配ブースティング(XGBoost, LightGBMなど)

勾配ブースティング(Gradient Boosting)は、機械学習における教師あり学習の分類問題において非常に高い精度を持つ手法の一つであり、複数の弱学習器(通常は決定木)を逐次的に組み合わせて強力な予測モデルを構築する手法です。特に、XGBoostLightGBMはその代表的な実装です。


1. 勾配ブースティングの基本概念

弱学習器の逐次的な構築

勾配ブースティングでは、初期モデルを構築した後、残された誤差(残差)を補うようなモデルを1つずつ追加していきます。このようにして、複数の弱いモデル(例:浅い決定木)を逐次的に学習・補正させることで、全体として強力な分類器を構築します。

勾配降下法との関係

誤差関数(損失関数)を最小化するために、勾配情報(目的関数の負の勾配)を使って次に追加する木の出力を決定します。この勾配に基づくアプローチが「勾配ブースティング」と呼ばれる所以です。


2. アルゴリズムの概要

  1. 初期モデルの作成
    最初のモデル F0(x)F_0(x) を一定の値(例:全体の平均など)で初期化する。

  2. 反復ステップ(m = 1, 2, …, M)

    • 各ステップで、現在のモデルによる誤差(残差)を計算

    • この残差を目的変数として、新たな決定木 hm(x)h_m(x) を学習

    • 学習した木に対して適切な重み(学習率 η\eta と係数)をかけて加算

    • モデルを更新:

      Fm(x)=Fm1(x)+ηhm(x)F_m(x) = F_{m-1}(x) + \eta \cdot h_m(x)

  3. 最終的な予測

    y^=sign(FM(x))\hat{y} = \text{sign}(F_M(x))

    分類問題では最終的に符号をとることで2値分類が可能。


3. 特徴と利点

  • 高い予測精度: 多くの実データセットで非常に高精度。

  • 柔軟性: 損失関数や基底モデルの選択に自由度がある。

  • 変数のスケーリング不要: 標準化や正規化が不要。

  • 特徴量重要度の算出が可能


4. 代表的な実装

XGBoost(Extreme Gradient Boosting)

  • 効率的な計算を行うブースティングライブラリ。

  • 特徴:

    • 欠損値の自動処理

    • 木の構造最適化(深さ制御、剪定など)

    • L1・L2正則化

    • 並列計算とキャッシュ最適化

LightGBM(Light Gradient Boosting Machine)

  • マイクロソフトによる高速な勾配ブースティングライブラリ。

  • 特徴:

    • 葉ごとの成長戦略(leaf-wise):より深い木が構築されやすく、精度が向上しやすい

    • 勾配の近似(Gradient-based One-Side Sampling, GOSS)

    • 特徴量のサブサンプリング(Exclusive Feature Bundling, EFB)

CatBoost(Yandexによる実装)

  • カテゴリカル変数を自動で処理できることが特徴。


5. 欠点

  • 過学習のリスク:強力なモデルであるがゆえに、データに過剰適合しやすい。

  • 学習時間が長い:特に木の本数や深さを増やすと計算コストが大きくなる。

  • ハイパーパラメータの調整が複雑


6. 主なハイパーパラメータ

  • n_estimators(木の数)

  • max_depth(木の深さ)

  • learning_rate(学習率)

  • subsample(サブサンプル比率)

  • colsample_bytree(特徴量のサブサンプル比率)

  • min_child_weight(ノード分割の最小条件)


7. 用途と応用例

  • 顧客離反予測(Churn Prediction)

  • クレジットカード不正検出

  • 保険リスク分類

  • 医療データの診断分類

  • コンペティション(Kaggle等)での高精度モデル


まとめ

勾配ブースティングは、弱学習器(決定木)を多数組み合わせて精度の高い分類器を構築する手法であり、XGBoostやLightGBMといった実装は、実務・研究・競技プログラミングで広く使用されています。その精度と柔軟性の高さから、機械学習における最も重要な手法の一つとして位置づけられています。

生成日:2025/06/01