勾配ブースティング(XGBoost・LightGBM) こうばいぶーすてぃんぐ
XGBoostLightGBMアンサンブル学習決定木Kaggle表形式データ
勾配ブースティング(XGBoost・LightGBM)について教えて
簡単に言うとこんな感じ!
「弱い予測モデルを何十本も積み重ねて、失敗を少しずつ修正しながら強くしていく」手法だよ!下手なアーチャーを100人並べて、前の人の外れた分を次の人が補正していくイメージ。表形式データのコンペで最強クラスの精度を誇るんだ!
勾配ブースティングとは
勾配ブースティング(Gradient Boosting) とは、複数の「弱い学習器(決定木)」を順番に学習させ、前のモデルが犯した 残差(予測誤差) を次のモデルが補正することを繰り返す機械学習のアンサンブル手法です。各モデルの予測を足し合わせることで最終的な高精度な予測を得ます。
「ブースティング(Boosting)」はアンサンブル学習の一種で、並列に複数モデルを組み合わせる バギング(ランダムフォレストなど)と対をなす手法です。決定木を並列ではなく 直列に積み上げる 点が特徴で、「前の木が苦手な部分を次の木が学習する」という連鎖的な改善が強みです。
ビジネス現場で多用される XGBoost(eXtreme Gradient Boosting)と LightGBM(Light Gradient Boosting Machine)は、この勾配ブースティングを高速・省メモリに実装したライブラリです。売上予測・リスクスコアリング・不正検知など 表形式データ(Excelやデータベースのような構造化データ) の案件では、ニューラルネットワークをしのぐ性能を示すことが多く、データ分析コンペ「Kaggle」での常連優勝手法でもあります。
XGBoost vs LightGBM 比較
| 項目 | XGBoost | LightGBM |
|---|---|---|
| 開発元 | DMLC(ワシントン大学) | Microsoft |
| 学習速度 | 速い | より速い(数倍〜10倍) |
| メモリ効率 | 良好 | 非常に良好 |
| 精度 | 高い | 同等〜やや上 |
| 少量データ | 安定 | 過学習しやすい場合あり |
| 大規模データ | 対応 | 特に得意 |
| GPU対応 | ○ | ○ |
| 主な用途 | バランス重視 | 高速処理・大規模データ |
アンサンブル手法の全体像
歴史と背景
- 1997年 — Yoav Freund・Robert SchapireがAdaBoostを発表。ブースティングの原型
- 1999年 — Jerome Friedmanが勾配ブースティングの理論を整理・発表
- 2014年 — Tianqi ChenがXGBoostを開発。速度・正則化機能で爆発的に普及
- 2016年 — MicrosoftがKDD ConferenceでLightGBMを発表。リーフワイズ分割で高速化
- 2017年〜 — KaggleコンペでXGBoost・LightGBMが連続優勝し事実上の標準に
- 2019年 — CatBoost(Yandex製・カテゴリ変数に強い)が注目を集め3強体制に
主要パラメータと意味
| パラメータ | 意味 | 調整のポイント |
|---|---|---|
| n_estimators | 木の本数 | 多すぎると過学習・遅くなる |
| learning_rate | 各木の寄与率 | 小さくして木を増やすと精度↑ |
| max_depth | 各木の深さ上限 | 浅くすると過学習を防止 |
| subsample | 学習に使うデータ割合 | 0.8程度でノイズ耐性向上 |
| reg_lambda | L2正則化係数 | 大きくすると汎化性能↑ |
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| — | 学術論文ベースの手法のため公式規格なし |
関連用語
- 決定木・ランダムフォレスト — 決定木を並列アンサンブルするバギング手法
- 過学習 — 学習データに過度にフィットして汎化性能が落ちる問題
- 正則化 — 過学習を防ぐためのペナルティ付き学習手法
- 交差検証 — モデルの汎化性能を評価するデータ分割手法
- 特徴量エンジニアリング — モデルへの入力データを最適化する前処理
- 教師あり学習 — ラベル付きデータからパターンを学習する機械学習の基本形
- 回帰分析 — 数値を予測する機械学習・統計手法の基本