勾配ブースティング(XGBoost/LightGBM)

表データの王者、GBDTの仕組み。XGBoost・LightGBM・CatBoost御三家を整理します。

Kaggle頻出、表データの王者。XGBoost と LightGBM の仕組みと使いどころ。

胡桃 あんず(普段) 胡桃 あんず

Kaggleで『XGBoostとLightGBMが強い』ってよく聞くけど、何がそんなにすごいの?

若葉 みどり 先生(笑顔) 若葉 みどり 先生

どちらも勾配ブースティングのライブラリね。 表データ(構造化データ)に対してとても強力なのよ。

白銀 ゆき(普段) 白銀 ゆき

勾配ブースティングは、弱学習器(浅い決定木)を逐次的に追加していくアンサンブル学習。 各ステップで前のモデルの誤差を埋めるよう次の木を作る。

桜井 もも(普段) 桜井 もも

ランダムフォレストとは違うんですかぁ?
もも、ごっちゃになっちゃう…

白銀 ゆき(普段) 白銀 ゆき

ランダムフォレストは並列に独立した木を作り平均するバギング。 勾配ブースティングは逐次に誤差を補正するブースティング。 両者は似て非なるアプローチよ。

胡桃 あんず(普段) 胡桃 あんず

XGBoostとLightGBMって、どう違うの?

若葉 みどり 先生(普段) 若葉 みどり 先生

XGBoostは2014年登場の元祖。 LightGBMはMicrosoft開発の高速版で、ヒストグラム法とLeaf-wise成長戦略で速度・メモリ効率が良い。

白銀 ゆき(普段) 白銀 ゆき

あとCatBoostもあって、こちらはカテゴリ変数の扱いが得意なの。 この3つはGBDT御三家と呼ばれているわ。

桜井 もも(普段) 桜井 もも

実装するときに気をつけることってありますかぁ?

若葉 みどり 先生(普段) 若葉 みどり 先生

主要なハイパーパラメータは (1)学習率(low to high)、(2)木の本数、(3)木の深さ、(4)正則化。 学習率を下げると過学習が緩和されるが本数を増やす必要があり、トレードオフ。

胡桃 あんず(笑い) 胡桃 あんず

結局、ハイパラ調整は避けて通れないんだね〜。

白銀 ゆき(普段) 白銀 ゆき

そうね、最適化はGridSearchやOptunaなどで行うのが定番。 GBDTは強力だけど、ハイパラに敏感な一面もあるのよ。

白銀 ゆき(普段) 白銀 ゆき

DS検定では『GBDTは弱学習器の逐次追加』『XGBoost/LightGBMは表データで強い』『ランダムフォレストとブースティングの違い』が頻出。

import lightgbm as lgb
from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
model = lgb.LGBMClassifier(
    n_estimators=200,
    learning_rate=0.05,
    max_depth=6,
    random_state=42,
)
model.fit(X_train, y_train, eval_set=[(X_test, y_test)])

確認クイズ

勾配ブースティングの特徴として正しいのはどれか。

  1. 弱学習器を並列に独立して作り、平均する
  2. 弱学習器を逐次的に追加し、各ステップで前モデルの誤差を補正する
  3. 決定木を使わない手法である
  4. 教師なし学習である
こたえを見る

正解: 2. 弱学習器を逐次的に追加し、各ステップで前モデルの誤差を補正する

逐次的に追加し、誤差を補正するのが勾配ブースティングの特徴です。 並列に独立した木を作るのはランダムフォレスト(バギング)で、両者の対比は頻出問題です。

胡桃あんず・白銀ゆきのイラスト。ほどけた靴ひもにつまずいて、支えてもらい

この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。

この記事について

データサイエンティスト検定スタディが作成した教材です。運営について・記事の作り方

試験についてはこちらをご覧ください: データサイエンティスト協会 公式サイト

この記事を共有