プロジェクトマネジメント

XGBoost・LightGBM・CatBoostの違いを比較|3つの使い分け完全ガイド

はじめに

GBDT(Gradient Boosting Decision Tree)系アルゴリズムは「構造化データに最も強い」とされ、実務・コンペ問わず利用される手法です。
中でも代表的なのが XGBoost / LightGBM / CatBoost の3つ。
本記事では、それぞれの特徴・速度・精度・カテゴリ変数の扱い・使い分けを明確に整理し、「どれを選ぶべきかが一目でわかる」構成にしています。


結論:3つの最適な使い分け

最初にいちばん大事な結論だけ。

モデル得意領域向くケース
XGBoost小〜中規模・正則化が強い・安定した精度過学習を抑えたい、欠損値処理を楽にしたい
LightGBM速度最速・大規模データ・カテゴリに強いデータが大きい、カテゴリが多い、圧倒的に速く回したい
CatBoostカテゴリ最強・精度が高いカテゴリ変数が大量、多段カテゴリ、前処理を減らしたい

つまり:

重要!

大規模 → LightGBM
カテゴリ多い → CatBoost
安定した精度と扱いやすさ → XGBoost

この三角形のバランスで判断すれば失敗しません。


モデルの特徴まとめ

XGBoost

GBDTの王道モデル
欠損値を自動処理
正則化(L1/L2)が強く過学習に強い
小〜中規模で安定
学習速度はそこそこ
カテゴリ変数は前処理が必要

最も“汎用的”で、機械学習初心者〜実務者まで幅広く使われる。


LightGBM

Microsoft開発の超高速GBDT
Leaf-wise成長で深く学習できる
カテゴリ変数を直接学習可能
メモリ効率が非常に高い
大規模データを高速に扱える
過学習しやすいので制御が必要

現代の実務では採用率トップクラス。


CatBoost

Yandex開発
カテゴリ変数処理が最強(エンコーディング不要)
精度が安定しやすい
前処理が劇的に少ない
デフォルトのままでも精度が出やすい
学習速度はLightGBMより遅いがXGBoostより速いことが多い

“カテゴリ地獄”のデータでは無類の強さ。


各モデルの速度・精度・扱いやすさを比較

速度比較(LightGBMが圧勝)

モデル速度
LightGBM最速
CatBoost中程度(そこそこ速い)
XGBoost比較的遅い(histで改善)

大規模データではLightGBMがほぼ一択。


精度比較(CatBoostがやや有利な場面あり)

モデル精度傾向
XGBoost安定して高い
LightGBM精度は状況次第、カテゴリ多いと強い
CatBoost特にカテゴリデータで強い

カテゴリ変数の処理次第で精度が大きく変わる。


カテゴリ変数の扱い

モデルカテゴリ処理
XGBoost前処理必須(one-hot/label)
LightGBM直接学習可
CatBoost最強。前処理不要、効果が安定

EC・広告・業務データなど、カテゴリが爆発する場面で差が出る。


メモリ使用量

  • LightGBM:最も少なく軽い
  • CatBoost:中程度
  • XGBoost:多め

どれを使うべきか?ケース別ガイド

ケース最適モデル理由
データが巨大(10万〜1000万行)LightGBMヒストグラム法で高速&省メモリ
カテゴリが多いCatBoostネイティブにカテゴリ処理が強い
欠損値をラクに扱いたいXGBoost欠損値の自動方向学習が優秀
とりあえずGBDTの王道を知りたいXGBoost最も汎用で学習コストが低い
GPUで爆速学習したいLightGBM / XGBoost(GPU版)GPU対応が強力
パラメータをほぼ触りたくないCatBoostデフォルトが強い

コード比較(最低限の実行例)

XGBoost

from xgboost import XGBClassifier
model = XGBClassifier()
model.fit(X_train, y_train)

LightGBM

import lightgbm as lgb
model = lgb.LGBMClassifier()
model.fit(X_train, y_train)

CatBoost

from catboost import CatBoostClassifier
model = CatBoostClassifier(verbose=0)
model.fit(X_train, y_train)

実務での選ばれ方(リアルな使い分け)

領域・用途推奨モデル理由
広告・マーケティングLightGBM / CatBoostカテゴリ変数が多く、大規模データでも高速・高精度
金融スコアリングXGBoost / CatBoost安定性が求められ、説明性が重要になるため
需要予測LightGBM超高速学習が可能で、特徴量が多くても安定
製造・品質管理XGBoost挙動が安定しており、モデル解釈が行いやすい

まとめ

XGBoost → 安定性と欠損処理の強さ
LightGBM → 速度・メモリ効率・カテゴリ処理
CatBoost → カテゴリ変数最強・精度安定
3つは使い分けが明確
実務ではデータ量・カテゴリの数で選ぶと正解率が上がる


関連記事(内部リンク)

-【初心者向け】XGBoostとは?特徴・仕組み・使い方をわかりやすく解説

-プロジェクトマネジメント
-, ,