LightGBMは、Light Gradient Boosting Machine の略で、機械学習用のフリーかつオープンソースの分散型勾配ブースティングフレームワークであり、マイクロソフトが開発した 。決定木アルゴリズムをベースにしており、ランク付け、分類、その他の機械学習タスクに使用される。パフォーマンスとスケーラビリティに重点を置いて開発されている。
概要 LightGBM フレームワークは、GBT、GBDT、GBRT、GBM、MART 、RF など、さまざまなアルゴリズムをサポートしている。LightGBM は、スパース最適化、並列学習、複数の損失関数、正則化、バギング、早期停止など、 XGBoost の利点を多く備えているが、ツリーの構造が大きく異なる。多くの実装ではツリーをレベル(行)ごとに成長させるがThe Gradient Boosters IV: LightGBM – Deep & Shallow、LightGBM ではツリーをリーフ(葉)ごとに育て、損失が最も減少すると思われるリーフを選択するXGBoost, LightGBM, and Other Kaggle Competition Favorites | by Andre Ye | Sep, 2020 | Towards Data Science。また、LightGBM では、XGBoost その他の実装で採用されているソートベースの決定木アルゴリズム(ソートされた特徴量に基づいて最適な分割点を探索するアルゴリズム)ではなく、高度に最適化されたヒストグラムベースの決定木学習アルゴリズムを実装しており、効率性とメモリ消費の両面で大きなメリットがある。LightGBM アルゴリズムは、GOSS(Gradient-Based One-Side Sampling)とEFB(Exclusive Feature Bundling)という 2 つの新しい技術を採用しており、高い精度を維持しながらアルゴリズムを高速に実行することができる。
LightGBMは、Linux、Windows、macOS で動作し、C++、Python、R、C# をサポートしている。ソースコードはMITライセンスでライセンスされており、GitHubで公開されている。
GOSS Gradient-Based One-Side Sampling(GOSS)は、GBDT のデータインスタンスにネイティブウェイトがないことを利用した手法。異なる勾配を持つデータインスタンスは、情報利得の計算において異なる役割を果たすため、より大きな勾配を持つインスタンスが情報利得に大きく貢献することになる。そのため、GOSS は情報の精度を保つために、勾配の大きいインスタンスを残し、勾配の小さいインスタンスを無作為に削除する。
EFB Exclusive Feature Bundling(EFB)は、有効な特徴量の数を削減するための、ほぼロスレスな手法である。スパースな特徴量空間では、多くの特徴量はほぼ排他的であり、同時にゼロ以外の値を取ることはほとんどない。ワンホットエンコードされた特徴量は、排他的な特徴量の典型例である。EFB では、これらの特徴量を束ねて次元を下げることで、高い精度を維持しつつ効率化を図っている。このように、排他的な特徴を 1 つの特徴量として束ねたものを EFB と呼ぶ。
関連項目 機械学習 ML.NET データビニング 勾配ブースティング XGBoost scikit-learn CatBoost
脚注
参考文献
外部リンク GitHub-microsoft / LightGBM LightGBM-Microsoft Research