LightGBMは、Light Gradient Boosting Machine の略で、機械学習用のフリーかつオープンソースの分散型勾配ブースティングフレームワークであり、マイクロソフトが開発した[4] [5]決定木アルゴリズムをベースにしており、ランク付け、分類、その他の機械学習タスクに使用される。パフォーマンスとスケーラビリティに重点を置いて開発されている。

LightGBM
作者 Guolin Ke[1] / Microsoft Research
開発元 Microsoft and LightGBM Contributors[2]
初版 2016年 (8年前) (2016)
最新版
3.3.2[3] ウィキデータを編集 / 2022年1月7日 (2年前)
リポジトリ github.com/microsoft/LightGBM
プログラミング
言語
C++, Python, R, C
対応OS Windows, macOS, Linux
種別 機械学習, 勾配ブースティング framework
ライセンス MIT License
公式サイト lightgbm.readthedocs.io
テンプレートを表示

概要

編集

LightGBM フレームワークは、GBT、GBDT、GBRT、GBM、MART[6] [7]RF など、さまざまなアルゴリズムをサポートしている[8]。LightGBM は、スパース最適化、並列学習、複数の損失関数、正則化、バギング、早期停止など、 XGBoost の利点を多く備えているが、ツリーの構造が大きく異なる。多くの実装ではツリーをレベル(行)ごとに成長させるが[9]、LightGBM ではツリーをリーフ(葉)ごとに育て、損失が最も減少すると思われるリーフを選択する[10]。また、LightGBM では、XGBoost その他の実装で採用されているソートベースの決定木アルゴリズム(ソートされた特徴量に基づいて最適な分割点を探索するアルゴリズム[11])ではなく、高度に最適化されたヒストグラムベースの決定木学習アルゴリズムを実装しており、効率性とメモリ消費の両面で大きなメリットがある[12]。LightGBM アルゴリズムは、GOSS(Gradient-Based One-Side Sampling)とEFB(Exclusive Feature Bundling)という 2 つの新しい技術を採用しており、高い精度を維持しながらアルゴリズムを高速に実行することができる[13]

LightGBMは、LinuxWindowsmacOS で動作し、C++Python[14]RC# をサポートしている[15]。ソースコードは MIT License でライセンスされており、GitHubで公開されている[16]

Gradient-Based One-Side Sampling(GOSS)は、GBDT のデータインスタンスにネイティブウェイトがないことを利用した手法。異なる勾配を持つデータインスタンスは、情報利得の計算において異なる役割を果たすため、より大きな勾配を持つインスタンスが情報利得に大きく貢献することになる。そのため、GOSS は情報の精度を保つために、勾配の大きいインスタンスを残し、勾配の小さいインスタンスを無作為に削除する[13]

Exclusive Feature Bundling(EFB)は、有効な特徴量の数を削減するための、ほぼロスレスな手法である。スパースな特徴量空間では、多くの特徴量はほぼ排他的であり、同時にゼロ以外の値を取ることはほとんどない。ワンホットエンコードされた特徴量は、排他的な特徴量の典型例である。EFB では、これらの特徴量を束ねて次元を下げることで、高い精度を維持しつつ効率化を図っている。このように、排他的な特徴を 1 つの特徴量として束ねたものを EFB と呼ぶ[13]

関連項目

編集

脚注

編集
  1. ^ Guolin Ke”. 2021年6月15日閲覧。
  2. ^ microsoft/LightGBM”. GitHub. 2021年6月15日閲覧。
  3. ^ Release 3.3.2” (7 1月 2022). 28 1月 2022閲覧。
  4. ^ Brownlee. “Gradient Boosting with Scikit-Learn, XGBoost, LightGBM, and CatBoost”. 2021年6月15日閲覧。
  5. ^ Kopitar, Leon; Kocbek, Primoz; Cilar, Leona; Sheikh, Aziz; Stiglic, Gregor (July 20, 2020). “Early detection of type 2 diabetes mellitus using machine learning-based prediction models”. Scientific Reports 10 (1): 11981. Bibcode2020NatSR..1011981K. doi:10.1038/s41598-020-68771-z. PMC 7371679. PMID 32686721. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7371679/. 
  6. ^ Understanding LightGBM Parameters (and How to Tune Them)”. neptune.ai. May 6, 2020閲覧。
  7. ^ An Overview of LightGBM”. avanwyk. May 16, 2018閲覧。
  8. ^ Parameters — LightGBM 3.0.0.99 documentation”. lightgbm.readthedocs.io. 2021年6月15日閲覧。
  9. ^ The Gradient Boosters IV: LightGBM – Deep & Shallow
  10. ^ XGBoost, LightGBM, and Other Kaggle Competition Favorites | by Andre Ye | Sep, 2020 | Towards Data Science
  11. ^ Manish, Mehta; Rakesh, Agrawal; Jorma, Rissanen. “SLIQ: A fast scalable classifier for data mining.”. International Conference on Extending Database Technology. https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.89.7734&rep=rep1&type=pdf Nov 24, 2020閲覧。. 
  12. ^ Features — LightGBM 3.1.0.99 documentation”. lightgbm.readthedocs.io. 2021年6月15日閲覧。
  13. ^ a b c Ke, Guolin; Meng, Qi; Finley, Thomas; Wang, Taifeng; Chen, Wei; Ma, Weidong; Ye, Qiwei; Liu, Tie-Yan. “LightGBM: A Highly Efficient Gradient Boosting Decision Tree” (英語). Advances in Neural Information Processing Systems 30. https://papers.nips.cc/paper/2017/hash/6449f44a102fde848669bdd9eb6b76fa-Abstract.html 2021年6月15日閲覧。. 
  14. ^ lightgbm: LightGBM Python Package”. 2021年6月15日閲覧。
  15. ^ Microsoft.ML.Trainers.LightGbm Namespace”. docs.microsoft.com. 2021年6月15日閲覧。
  16. ^ microsoft/LightGBM”. 2021年6月15日閲覧。

参考文献

編集

外部リンク

編集