본문 바로가기

머신러닝

[머신러닝] 앙상블(Ensemble) 기법_부스팅(Boosting)_LightGBM

반응형

Light Gradient Boosted Machine Algorithm(LightGBM) 이란?

1) LightGBM: XGBoost와 비교해 큰 예측 성능 차이를 보이지 않으면서 학습 시간을 상당히 단축시킨 모델

2) 큰 테이블 형태의 데이터가 있을 때 정보의 손실 없이 행과 열을 줄여 문제를 효율적으로 다룬 모델

3) LightGBM의 핵심기술: GOSS – row 줄이는 방법, EFB – column을 줄이는 방법

Light Gradient Boosted Machine Algorithm(LightGBM) 설명

1)GOSS(Gradient based One Side Sampling): row(obs) 줄이는 방법

모델로 일단 예측한다

-> 실제 값과의 errorloss 계산한다

->  Loss가 큰 순서대로 정렬 후, 상위 N개를 뽑아 topSet에 저장
-> topSet에 저장되지 않은 데이터 중 M개를 랜덤 샘플링

->  줄어든 데이터는 gradient가 큰 N+ gradient가 작은 M개로 구성

->  마지막으로 gradient가 작은 M개의 데이터에 대해 weight (1-N/M) 적용

->  줄어든 데이터로 약한 예측기를 만들어 전체 예측기 셋에 추가한다.

2)EFB(Exclusive Feature Bunding): column(feature)을 줄이는 방법

Tree모델에서 상호 배타적인(원핫 인코딩을 통해 column중 하나에만 값이 있고 나머지는 0인 경우) feature들은 하나로 통합이 가능함

일종의 차원 축소 기법

LightGBM Hyperparameter 설명

1) Explore Number of Trees: LGBMClassifier 함수에서 n_estimators인수로 tree의 수 설정(default:100)

 

2) Explore Tree Depth:

LGBMClassifier 함수에서 max_depth인수로 tree의 깊이 설정
LGBMClassifier 함수에서 num_leavesterminal nodes(leaves)의 개수 설정
 

3) Explore Learning Rate: LGBMClassifier 함수에서 learning_rate인수로 learning rate 설정(default:0.1)

 

4) Explore Boosting Type:

gbdt’ : Gradient Boosting Decision Tree(GBDT) – default
‘dart’ : Dropouts meet Multiple Additive Regression Trees(DART)
goss’ : Gradient-based One-Side Sampling(GOSS)

 

반응형