LightGBM

LightGBM
원저자구오린 케 / 마이크로소프트 리서치
개발자마이크로소프트 및 LightGBM 기여자
발표일2016년(10년 전)(2016)
안정화 버전
v4.3.0 / 2024년 1월 15일(2년 전)(2024-01-15)
저장소github.com/microsoft/LightGBM
프로그래밍 언어C++, 파이썬, R, C
운영 체제윈도우, macOS, 리눅스
종류기계 학습, 그라디언트 부스팅 프레임워크
라이선스MIT 허가서
웹사이트lightgbm.readthedocs.io

LightGBM은 Light Gradient-Boosting Machine의 약자로, 기계 학습을 위한 자유-오픈 소스 분산 그라디언트 부스팅 프레임워크이며, 원래 마이크로소프트에서 개발했다. 이 프레임워크는 결정 트리 알고리즘을 기반으로 하며 순위 학습, 통계적 분류 및 기타 기계 학습 작업에 사용된다. 개발 중점은 성능과 확장성에 있다.

개요

LightGBM 프레임워크는 GBT, GBDT, GBRT, GBM, MART 및 RF를 포함한 다양한 알고리즘을 지원한다. LightGBM은 희소 최적화, 병렬 훈련, 다중 손실 함수, 정규화, 배깅, 조기 종료 등 XGBoost의 많은 장점을 가지고 있다. 두 가지의 주요 차이점은 트리의 구성에 있다. LightGBM은 대부분의 다른 구현에서와 같이 레벨별로(행 단위로) 트리를 성장시키지 않는다. 대신 잎(leaf)-단위로 트리를 성장시킨다. 최대 델타 손실을 가진 잎을 선택하여 성장한다. 또한 LightGBM은 XGBoost 또는 다른 구현에서처럼 정렬된 특성 값에서 최적의 분할 지점을 검색하는 널리 사용되는 정렬 기반 결정 트리 학습 알고리즘을 사용하지 않는다. 대신 LightGBM은 고도로 최적화된 히스토그램 기반 결정 트리 학습 알고리즘을 구현하여 효율성과 메모리 소비 모두에서 큰 장점을 제공한다. LightGBM 알고리즘은 Gradient-Based One-Side Sampling (GOSS) 및 Exclusive Feature Bundling (EFB)이라는 두 가지 새로운 기술을 활용하여 높은 수준의 정확도를 유지하면서 알고리즘을 더 빠르게 실행할 수 있도록 한다.

LightGBM은 리눅스, 윈도우, macOS에서 작동하며 C++, 파이썬, R, C#을 지원한다. 소스 코드는 MIT 허가서에 따라 라이선스가 부여되며 깃허브에서 사용할 수 있다.

경사 기반 단측 샘플링

경사 하강법을 사용할 때, 모델의 가능한 구성 공간을 계곡으로 생각하는데, 이 계곡의 가장 낮은 부분이 데이터에 가장 근접하게 맞는 모델이다. 이 비유에서, 계곡이 얼마나 더 낮아지는지 배우기 위해 다른 방향으로 걷는다.

일반적으로 경사 하강법에서는 전체 데이터 집합을 사용하여 계곡의 기울기를 계산한다. 그러나 이 일반적으로 사용되는 방법은 모든 데이터 포인트가 동일하게 유익하다고 가정한다.

대조적으로, 경사 부스팅 결정 트리를 위해 처음 개발된 방법인 Gradient-Based One-Side Sampling (GOSS)은 모든 데이터가 동일하게 유익하다는 가정에 의존하지 않는다. 대신, 더 작은 경사(더 얕은 기울기)를 가진 데이터 포인트를 무작위로 제거하여 덜 유익한 것으로 간주한다. 이는 노이즈의 영향을 받았을 수 있는 데이터를 걸러내어 모델이 데이터의 기본 관계를 더 정확하게 모델링할 수 있도록 하기 위함이다.

배타적 특징 번들링

배타적 특징 번들링(EFB)은 유효 특징의 수를 줄이는 거의 무손실 방법이다. 희소 특징 공간에서 많은 특징은 거의 배타적이며, 이는 동시에 0이 아닌 값을 거의 취하지 않는다는 것을 의미한다. 원-핫 인코딩된 특징은 배타적 특징의 완벽한 예이다. EFB는 이러한 특징들을 묶어 차원수를 줄여 효율성을 향상시키면서 높은 수준의 정확도를 유지한다. 배타적 특징을 단일 특징으로 묶는 것을 배타적 특징 번들(exclusive feature bundle)이라고 한다.

같이 보기

각주

  1. ↑ “Guolin Ke”. 《GitHub》.
  2. ↑ “microsoft/LightGBM”. 《GitHub》. 2022년 7월 7일.
  3. ↑ “Releases · microsoft/LightGBM”. 《GitHub》.
  4. ↑ Brownlee, Jason (2020년 3월 31일). “Gradient Boosting with Scikit-Learn, XGBoost, LightGBM, and CatBoost”.
  5. ↑ Kopitar, Leon; Kocbek, Primoz; Cilar, Leona; Sheikh, Aziz; Stiglic, Gregor (2020년 7월 20일). 《Early detection of type 2 diabetes mellitus using machine learning-based prediction models》. 《Scientific Reports》 10. 11981쪽. Bibcode:2020NatSR..1011981K. doi:10.1038/s41598-020-68771-z. PMC 7371679. PMID 32686721 – www.nature.com 경유.
  6. ↑ “Understanding LightGBM Parameters (and How to Tune Them)”. 《neptune.ai》. 2020년 5월 6일.
  7. ↑ “An Overview of LightGBM”. 《avanwyk》. 2018년 5월 16일.
  8. ↑ “Parameters — LightGBM 3.0.0.99 documentation”. 《lightgbm.readthedocs.io》.
  9. ↑ The Gradient Boosters IV: LightGBM – Deep & Shallow
  10. ↑ “Features”. 《LightGBM Official Documentation》. 2024년 11월 3일.
  11. ↑ Manish, Mehta; Rakesh, Agrawal; Jorma, Rissanen (2020년 11월 24일). 《SLIQ: A fast scalable classifier for data mining.》. 《International Conference on Extending Database Technology》. 18–32쪽. CiteSeerX 10.1.1.89.7734.
  12. ↑ “Features — LightGBM 3.1.0.99 documentation”. 《lightgbm.readthedocs.io》.
  13. 1 2 3 Ke, Guolin; Meng, Qi; Finley, Thomas; Wang, Taifeng; Chen, Wei; Ma, Weidong; Ye, Qiwei; Liu, Tie-Yan (2017). 《LightGBM: A Highly Efficient Gradient Boosting Decision Tree》 (영어). 《Advances in Neural Information Processing Systems》 30.
  14. ↑ “lightgbm: LightGBM Python Package”. 2022년 7월 7일 – PyPI 경유.
  15. ↑ “Microsoft.ML.Trainers.LightGbm Namespace”. 《docs.microsoft.com》.
  16. ↑ “microsoft/LightGBM”. 2020년 10월 6일 – GitHub 경유.

더 읽어보기

외부 링크