728x90
반응형
기존의 GBM

- 모든 변수에 대해 모든 데이터셋을 스캔
Light GBM

기존의 GBM은 수직적으로 확장하는 반면에 다른 알고리즘은 Tree가 수평적으로 확장
Light GBM의 Leaf-wise tree 분할 방식은 tree 균형을 고려하지 않고 최대 손실 값(max data loss)를 가지는 leaf 노드를 지속적으로 분할하면서 tree가 깊어지고 비대칭적인 tree가 생성됨
성능 향상이 빠른 leaf 노드를 분할한다.
- 모든 변수에 대해 -> Exclusive Feature Bundling (EFB)
- 데이터가 Sparse한 공간에서는 exclusive하다. 즉, 동시에 nonzero값을 갖는 경우는 드물다.(ex: one-hot-encoding)
- 즉, 데이터의 변수를 줄임
- 모든 데이터셋을 스캔 -> Gradient-based One-Side Sampling (GOSS)
- 데이터 포인트들은 모두 서로 다른 Gradient를 가지고 있고 Gradient가 큰 데이터 포인트와 Gradient 작은 데이터 포인트는 서로 다른 역할을 함
- Large Gradient를 가지고 있는 데이터들은 Keep
- Small Gradient를 가지고 있는 데이터들은 랜덤하게 Drop
- 즉, 데이터의 객체 수를 줄임
- 즉, Light GBM은 데이터의 전체 총량을 줄임
- 민감하고 작은 데이터(n_rows가 10000이하)면 over-fitting 되기 쉬움
- 대용량 데이터에서 성능이 좋음
- 카테고리 변수가 많을 경우 매우 유용
- split point를 찾는 방식에서 효율을 극대화하여, 훨씬 작은 메모리로 빠르게 성능이 좋은 트리를 만듦
주요 파라미터
CART 관련 params
- max_depth : 제한을 크게 두지 않는 것을 추천, 15 ~ 25
- num_leaves : leaf node의 최대 갯수는 2의 depth 제곱 (*참고: node의 최대 갯수는 2의 depth+1 제곱 - 1) 당연히 2의 max_depth 제곱보다 작아야 함
- min_child_samples : 최종 결정 클래스인 Leaf Node가 되기 위해서 최소한으로 필요한 데이터 개체의 수, 1 ~ 100
- colsample_bytree : node split 시 동일한 세팅이어야 하기에 global randomization을 제공, 0.5 ~ 0.8
- reg_lambda
Tree ensemble 관련 params
- n_estimators : 반복을 수행하는 Tree 수, 50 ~ 원하는 만큼
- learning_rate : 0.3 ~ 0.001
- silent : -1(=verbase)
- random_state
728x90
반응형
'ML' 카테고리의 다른 글
| # 8 앙상블 기법 CatBoost (0) | 2023.09.24 |
|---|---|
| #6 앙상블 기법 XGBoost(Extreme Gradient Boosting) (0) | 2023.09.22 |
| #5 앙상블 기법 Gradient Boosting Machine(GBM) (0) | 2023.09.22 |
| # 4 앙상블 기법 AdaBoost (0) | 2023.09.22 |
| # 3 앙상블 기법 랜덤 포레스트(Random Forest) (0) | 2023.09.21 |