AIの最新情報・実演を動画でチェック

*当ブログではアフィリエイト広告を利用しています。

LightGBMとは?XGBoostとの違いと使い分けを初心者向けにやさしく解説

LightGBMを解説する記事のアイキャッチ。ルミィが軽くて速い決定木のイメージと一緒に走っている
ルミィ

ランダムフォレストXGBoostと来て、機械学習入門シリーズもいよいよ第6回。今回は、XGBoostと並ぶ勾配ブースティングのもう一つの定番、LightGBM(ライトジービーエム)です。

Kaggleや実務のテーブルデータ分析では、「とりあえずLightGBM」と言われるほどよく使われます。理由はシンプルで、速くて、軽くて、精度も高いから。この記事では、LightGBMの仕組み、XGBoostとの違い、使い分け、Pythonでの実装までを初心者向けに整理します。

ルミィ
ルミィ

名前のとおり「軽い(Light)」が最大の個性。大きなデータほど、ありがたみが分かるよ。

LightGBMとは?

LightGBMは、Microsoft発のオープンソースの勾配ブースティング(Gradient Boosting)ライブラリです。XGBoostと同じく「弱い決定木を少しずつ改善しながら積み上げる」仕組みで、テーブルデータ(表形式データ)の予測で高い精度を出します。

ポジションを一言でいうと、「XGBoostと同じ系統で、大規模データをより速く・少ないメモリで処理できるように設計されたライブラリ」です。

  • 速い:同じデータならXGBoost(従来設定)より数倍速いことも
  • 軽い:ヒストグラム化により、メモリ使用量が少ない
  • 高精度:勾配ブースティング系の精度はそのまま
  • カテゴリ変数を直接扱える:ワンホットエンコーディングなしでも学習できる

速さの秘密は2つ|ヒストグラム化とleaf-wise

①ヒストグラム化|数値を「ざっくりビン」にまとめる

LightGBMは、連続値の特徴量をそのまま使わず、一定数のビン(区間)に分けたヒストグラムに変換してから分割点を探します。細かい値を全部見比べる代わりに「ざっくりまとめてから探す」ので、計算量とメモリが大きく減ります。

②leaf-wise|効きそうな葉だけを深く伸ばす

決定木の育て方には2つの流儀があります。XGBoostの従来方式はlevel-wise(段ごとに均等に広げる)、LightGBMはleaf-wise(損失が最も減る葉を選んで深く伸ばす)です。

leaf-wiseは同じ葉の数ならlevel-wiseより損失を小さくしやすい、つまり効率よく精度を上げられる方式です。そのぶん、データが少ないと深く伸びすぎて過学習しやすいという弱点があり、max_depthなどで深さを抑えるのがセットになります。

木の育て方の違いの図解。XGBoostは段ごとに均等に広げるlevel-wise、LightGBMは効果の大きい葉だけを深く伸ばすleaf-wise
図1:XGBoostは「段ごとに均等に」、LightGBMは「効きそうな葉だけ深く」伸ばす。

XGBoostとの違いを表で整理

XGBoostLightGBM
開発元DMLC(オープンソース)Microsoft発(オープンソース)
木の育て方level-wise(段ごとに均等)leaf-wise(効く葉を深く)
速度高速(hist設定でさらに高速)大規模データで特に速い
メモリ標準的少なめ(ヒストグラム化)
小さいデータ比較的安定過学習しやすく調整が必要
カテゴリ変数基本は数値化が必要直接指定して扱える

なお、最近のXGBoostにもヒストグラム方式(tree_method="hist")があり、速度差は昔ほど大きくありません。「LightGBM=常に速い」ではなく、「大規模・横に広いデータで差が出やすい」と覚えるのが正確です。

使い分けの目安

  • データが大きい(数十万行〜)・特徴量が多い・速度重視 → LightGBM
  • 数千〜数万行の小さめデータで堅実に → XGBoost(またはランダムフォレスト)
  • カテゴリ変数が多い → LightGBM(直接扱えるため前処理が楽)
  • まず精度の当たりを付けたい → どちらか一方でOK。両方試して交差検証で比べるのが確実
使い分けの図解。大規模データ・速度重視はLightGBM、小〜中規模で堅実に進めるならXGBoost、どちらも勾配ブースティング
図2:迷ったら「データが大きい・速さ重視→LightGBM」「小さめ・堅実→XGBoost」。

実務では「どちらかが圧勝」というより、データ規模と前処理の手間で選ぶのが現実的です。精度はチューニング次第で拮抗することが多いです。

Pythonで使ってみる

インストールはpipで一発です。

pip install lightgbm

scikit-learnと同じ書き方(fit/predict)で使えます。

import lightgbm as lgb
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42)

model = lgb.LGBMClassifier(
    n_estimators=300,
    learning_rate=0.05,
    num_leaves=31,
    random_state=42)
model.fit(X_train, y_train)

pred = model.predict(X_test)
print("accuracy:", accuracy_score(y_test, pred))

LGBMClassifier(分類)とLGBMRegressor(回帰)の2つを覚えれば、シリーズでやってきたscikit-learnの流れがそのまま通用します。

最初に触る5つのパラメータ

パラメータ意味目安
num_leaves葉の数(モデルの複雑さ)31から。上げすぎると過学習
learning_rate1本ごとの学習の強さ0.05〜0.1で小さめに
n_estimators木の本数300〜1000+早期打ち切り
max_depth木の深さの上限過学習対策に。-1(無制限)から必要なら制限
min_data_in_leaf葉に必要な最小データ数増やすと過学習を抑えられる

leaf-wiseの複雑さを直接決めるのはnum_leavesです。max_depthだけ調整してnum_leavesを放置すると意図どおりに効かないことがあるので、まずnum_leavesから触るのがLightGBM流です。

ルミィ
ルミィ

過学習っぽいな、と思ったら「num_leavesを下げる」「min_data_in_leafを上げる」。この2つが効き目わかりやすいよ。

よくあるつまずき

  • 小さいデータで精度が不安定 → leaf-wiseの宿命。num_leavesを下げる/XGBoostやランダムフォレストも試す
  • 訓練データだけ異常に精度が高い → 過学習。交差検証で確認し、min_data_in_leafを増やす
  • カテゴリ変数の扱い → 文字列のままではなくcategory型に変換して渡す(pandasのastype("category")

まとめ|「大きいデータはまずLightGBM」でOK

LightGBMは、ヒストグラム化とleaf-wise成長で「速く・軽く・高精度」を実現した勾配ブースティングライブラリです。XGBoostとの関係は、敵対というより同系統の使い分け。データが大きいほどLightGBMの強みが活き、小さいデータでは過学習への注意が必要です。

大規模・速度重視 → LightGBM。

小さめ・堅実 → XGBoost/ランダムフォレスト。

どちらも試して交差検証で比べるのが、いちばん確実。

シリーズの前回までは XGBoost・勾配ブースティング入門ランダムフォレスト完全ガイド をどうぞ。

よくある質問(FAQ)

LightGBMとXGBoostはどちらを使えばいいですか?

A. データが大きい・特徴量が多い・速度を重視する場合はLightGBM、小さめのデータで堅実に進めたい場合はXGBoostが目安です。精度はチューニング次第で拮抗することが多いため、両方試して交差検証で比べるのが確実です。

なぜLightGBMは速いのですか?

A. 特徴量をヒストグラム(ビン)にまとめてから分割点を探すことと、損失が最も減る葉だけを深く伸ばすleaf-wise成長の2つが主な理由です。計算量とメモリ使用量の両方を抑えられます。

小さいデータでも使えますか?

A. 使えますが、leaf-wise成長の特性上、過学習しやすくなります。num_leavesを小さくする、min_data_in_leafを増やす、max_depthを制限するなどの調整が必要です。

GPUは必要ですか?

A. 必須ではありません。LightGBMはCPUでも十分高速に動作します。大規模データでさらに高速化したい場合に、GPU版を検討する形で十分です。

あわせて読みたい

参考・一次ソース

※本記事は2026年6月時点の公式ドキュメント・公開情報をもとに整理しています。ライブラリの仕様・推奨設定は変わることがあるため、最新情報は公式ドキュメントでご確認ください。

ルミィ
ルミィ
AIナビゲーター
ChatGPT・Gemini・Claudeなどの会話AI、画像生成AI、動画生成AI、資料作成AI、AI検索ツールを初心者向けに解説するAIナビゲーター。実際に使ってみた感想や、仕事・学習・発信に役立つAI活用法をわかりやすく紹介しています。
記事URLをコピーしました