트리 기반의 앙상블 학습에서 가장 각광 받고 있는 알고리즘 중 하나
GBM에 기반하고 있지만 GBM이 가진 '느린 수행 시간' 및 '과적합 규제(Regularization) 부재' 등의 문제를 해결
병렬 CPU환경에서 병렬 학습이 가능해 GBM대비 빠른 학습 시간을 가진다.
Early Stopping 기능
기본 GBM의 경우 지정된 횟수(n_estimator)를 다 채워야 학습이 종료 되지만 XGBoost의 경우 부스팅 반복 횟수에 도달하지 않아도 예측 오류가 더 이상 개선되지 않는다면 반복을 끝까지 수행하지 않고 중지하여 수행시간을 개선할 수 있다.
독자적인 XGBoost 프레임 워크 기반의 XGBoost와 사이킷런과 연동되는 모듈로 나뉜다.
과적합 문제가 심각하다면 다음과 같이 적용할 것을 고려할 수 있다.
eta 값을 낮춘다.(0.01 ~ 0.1). eta 값을 낮출 경우 num_round(n_estimators)는 반대로 높여줘야 하낟.
max_depth 값을 낮춘다.
min_child_weight 값을 높인다.
gamma 값을 높인다.
subsample과 colsample_bytree를 조정하는 것도 트리가 너무 복잡하게 생성되는 것을 막아 과적합에 도움이 될 수 있다.
XGBoost 자체적으로 교차검증, 성능 평가, 피처 중요도 등의 시각화 기능을 가지고 있다.
'AI > ML(지도학습)' 카테고리의 다른 글
[파이썬 머신러닝 완벽가이드 - 분류(Classifier)] 샘플링(Sampling) (0) | 2021.07.13 |
---|---|
[파이썬 머신러닝 완벽가이드 - 분류(Classifier)] LightGBM (0) | 2021.07.12 |
[파이썬 머신러닝 완벽가이드 - 분류(Classifier)] 랜덤 포레스트(Random Forest), GBM(Gradient Boost Machine) (0) | 2021.07.11 |
[분류(Classifier)] 보팅 분류기(Voting Classifier) (0) | 2021.07.11 |
[파이썬 머신러닝 완벽가이드 - 분류(Classifier)] 앙상블 학습(Ensemble Learning) (0) | 2021.07.11 |