[머신러닝] Random Forest, XGBoost, LightGBM 비교
1.Random Forest
- 알고리즘
여러 개의 의사결정나무(Decision Tree) 모델을 배깅(bagging) 앙상블한 모델
bagging : training data로부터 랜덤하게 추출하여 동일한 사이즈의 데이터셋을 여러개 만들어 독립적인 트리를 구성
각 트리마다 변수들이 랜덤하게 사용(subsampling) > 개별 트리들의 상관성을 줄여 일반화 성능 확보
- 장점
일반화 및 성능 우수
파라미터 조정 쉬움
데이터 scaling 불필요
- 단점
샘플을 계속 추출하다 보면 비슷한 데이터가 만들어질 확률이 증가
해석이 어려움(앙상블 모형의 특징)
변수가 너무 적은 경우 랜덤성이 부족하여 성능 떨어짐
훈련시 메모리 소모 큼
2.XGBoost
- 알고리즘
여러 개의 의사결정나무(Decision Tree) 모델을 부스팅(boosting) 앙상블한 모델
Boosting : 이전 모형의 잔차(negative gradient)를 줄이는 방향으로 학습
병렬처리 지원으로 Gradient Boosting Machine(GBM) 보다 빠른 처리속도
Split Finding Algorithm : 가장 좋은 Split Point를 찾기 위해 가능한 모든 Split Point를 나열
- 장점
데이터 scaling 불필요
결측값이 없어도 학습 가능
- 단점
희소 데이터, non-tabular 데이터에서는 성능이 떨어짐
이상치에 민감
해석이 어려움(앙상블 모형의 특징)
3.LightGBM
- 알고리즘
여러 개의 의사결정나무(DecisionTree) 모델을 부스팅(boosting) 앙상블한 모델
GOSS(Gradient based One Side Sampling) : 잔차가 큰 관측값(모델이 충분히 학습하지 못한 관측값)에 초점을 맞추어 데이터의 크기를 줄임
학습방법에서 트리 생성시 Leaf-wise 방법으로 트리 만듦 -> 학습 속도 빠름
ex) 일반적인 Decision Tree는 한 층에서 가지를 만들면 그 후 다른 층에서 가지를 만듦(Level-wise), LightGBM은 층에 대한 제약 없이 잎에서 가지를 침(Leaf-wise)
- 장점
적은 메모리 사용
데이터 scaling 불필요
병렬처리 지원으로 빠른 속도의 학습
- 단점
데이터 수가 적을때 과적합 가능성 높아 XGBoost 모델에 비해 성능 떨어짐
해석이 어려움(앙상블 모형의 특징)
- 알고리즘 특징 비교
장점 | 단점 | |
Random Forest | 튜닝 파라미터 개수 적음 일반화 성능 높음 |
메모리 소모 큼 훈련 속도 오래 걸림 변수가 너무 적은 경우 랜덤성이 부족하여 성능 떨어짐 |
Xgboost | 병렬 처리 효율적 | 희소 데이터, non-tabular 데이터에서는 성능이 떨어짐 이상치에 민감함 |
LightGBM | 가장 빠른 훈련 속도 | 데이터가 적을 때 과적합 가능성 높음 |