Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

LightGBM

LightGBMは、特徴量ヒストグラムから決定木を葉優先で成長させ、大規模な表形式データセットを高速に学習する勾配ブースティングフレームワークです。

LightGBM(Light Gradient Boosting Machine)は、大規模データセットでの高速性と低メモリ使用量を重視して構築されたオープンソースの勾配ブースティングフレームワークです。表形式データに対してアンサンブルの決定木をトレーニングします。Microsoftは2016年にリリースし、NeurIPS 2017の論文LightGBM: A Highly Efficient Gradient Boosting Decision Treeでアルゴリズムについて説明しました。2026年3月には、同じメンテナーのもとで公式リポジトリがlightgbm-orgのGitHub組織に移管されました。LightGBMはPython、R、C++、コマンドラインから分類、回帰、ランキングを処理でき、機械学習コンペティションで多くの優勝ソリューションに採用されています。約10,000行の中規模テーブルでは、LightGBMのような木のアンサンブルが依然としてディープラーニングを上回ることがよくあります。

LightGBMの仕組み#

勾配ブースティングでは、木を1本ずつ構築します。新しい木は、現在のアンサンブルの予測に対する損失関数の勾配に適合させます。二乗誤差の場合、これは残差に相当するため、先行する木が残した誤差を修正します。モデルの予測値は、各出力に学習率を乗じたすべての木の出力の合計です。最も計算コストの高い処理は各ノードの最適な分割を見つけることであり、LightGBMは4つの手法でこれを高速化します。

  • ヒストグラムベースの分割: トレーニング前に、LightGBMは各連続特徴量を最大255個のビン(max_bin)に分類します。分割の探索では、ソート済みの各値ではなくビンの境界を調べます。また、分割後は大きい方の子のヒストグラムが親のヒストグラムから小さい方の子のヒストグラムを差し引いたものと等しくなるため、データから構築するのは小さい方の子のヒストグラムだけです。
  • 葉優先の成長: LightGBMは、木の葉がnum_leaves個(デフォルトでは31個)になるまで、損失を最も大きく減らす最適な分割を持つ葉を常に分割します。各深さのすべてのノードを分割してから次の深さへ進む方式とは異なります。同じ葉数なら、深さ優先の成長よりも損失を低くできますが、深く偏った木が生成されるため、小規模なデータセットでは過学習する可能性があります。
  • 勾配ベースの片側サンプリング (GOSS): 勾配が大きい行は、モデルの予測がまだ不正確な行です。data_sample_strategy="goss"を使用すると、LightGBMは勾配が最も大きい行の20%を保持し、残りからさらに10%をランダムにサンプリングして、そのサンプルに重みを付け、データ分布が元の分布に近い状態を保ちます。
  • 排他的特徴量バンドリング (EFB): ワンホット列のように、同時に非ゼロになることがまれなスパース特徴量を1つの特徴量に統合し、構築するヒストグラムの数を減らします。

各木は、葉の予算を使い切るか、それ以上有効な分割がなくなるまで分割探索を繰り返して成長し、ブースティングでは各ラウンドでこれを繰り返します。

LightGBMは、categorical_featureに指定された整数エンコード済みのカテゴリ特徴量も直接分割します。ワンホットエンコーディングを使わず、分割ごとにカテゴリをグループ化し、欠損値もデフォルトで処理します。トレーニングはCPU、GPU(device_type="gpu"または"cuda")、および分散学習器を使用した複数マシンで実行できます。

LightGBMのトレーニングとチューニング#

scikit-learnスタイルのLGBMClassifier、LGBMRegressor、LGBMRankerクラスで、ほとんどの用途に対応できます。葉優先の木は非常に深く成長することがあるため、過学習を防ぐ主な制御項目はnum_leaves、min_child_samples(葉あたりの行数はデフォルトで20)、max_depthです。これらに学習率と木の数を組み合わせ、ハイパーパラメーターのチューニングや検証セットでの早期停止によって調整します。ヒストグラムと葉優先の成長による効果は、20,000行、40特徴量の合成テーブルで、scikit-learnの従来型の正確な分割を用いる勾配ブースティングと比較すると分かります。

import time

import lightgbm as lgb
from sklearn.datasets import make_classification
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.model_selection import train_test_split

X, y = make_classification(n_samples=20_000, n_features=40, n_informative=15, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

# 200 trees each: exact split search vs. LightGBM's histograms and leaf-wise growth
for model in (GradientBoostingClassifier(n_estimators=200), lgb.LGBMClassifier(n_estimators=200, verbose=-1)):
    start = time.perf_counter()
    model.fit(X_train, y_train)
    seconds = time.perf_counter() - start
    print(f"{type(model).__name__}: {seconds:.1f} s, accuracy {model.score(X_test, y_test):.3f}")

Apple M5 Pro CPUでは、LightGBMは最大31葉の木を200本、1秒未満で成長させます。一方、scikit-learnが深さ3の正確な分割による木を200本構築するには約20秒かかります。また、LightGBMの大きな木は、テスト精度が0.956に達し、0.901のscikit-learnを上回ります。トレーニング済みモデルはテキスト形式またはJSON形式で保存でき、onnxmltoolsでONNXに変換すると、Python以外の環境でもサービングできます。

  • XGBoost: 2014年に正則化された二次ブースティングを広めた勾配ブースティングライブラリです。デフォルトでは深さを制限した木を成長させ(max_depth=6)、grow_policy="lossguide"で葉優先の成長を利用できます。バージョン2.0以降はヒストグラムによる分割探索がデフォルトになっており、現在では2つのライブラリで多くの手法が共通しています。
  • CatBoost: 2017年にリリースされたYandexのブースティングライブラリです。対称木を構築し、順序付きターゲット統計量でカテゴリ特徴量をエンコードして、ターゲットリークを抑えます。
  • ランダムフォレスト: ブートストラップサンプルを使って深い木を独立にトレーニングし、予測値を平均して分散を抑えます。
  • HistGradientBoosting: scikit-learnのHistGradientBoostingClassifierとHistGradientBoostingRegressorはLightGBMに着想を得た実装で、同じように特徴量をヒストグラムに分類します。
  • 表形式データ向け基盤モデル: TabPFNなどの事前学習済みTransformerは、データセットごとのトレーニングを行わず、1回のフォワードパスで小規模なテーブルを予測します。

実際のアプリケーション#

  • 不正検知と信用リスク: 銀行では、口座履歴、加盟店、金額、タイミングの特徴量から取引やローン申請をスコアリングします。LightGBMの高速な推論は、取引ごとの判定に適しています。
  • 需要予測: 小売業者は、過去の売上、価格、プロモーション、カレンダーの特徴量から、商品と店舗ごとの売上を予測します。人流は一般的な入力データです。Ultralytics YOLO26の物体カウントは、店舗映像でラインを横切る人を追跡し、クラスごとの入店数と退店数を報告します。これを時間ごとに集計すると、LightGBMによる人員配置予測の特徴量になります。
  • 検索とレコメンデーションのランキング: LGBMRankerはデフォルトでLambdaRankの目的関数を使ってトレーニングし、クエリグループ内の文書や商品を並べ替えて、正規化割引累積利得 (NDCG) を最適化します。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう