본문 바로가기
Data Analysis/Machine Learning

XGBoost

by SeleniumBindingProtein 2022. 5. 5.
728x90
반응형

XGBoost

  • Gradient Boosting 알고리즘을 분산환경에서도 실행할 수 있도록 구현해놓은 라이브러리
  • Regression, Classification 문제를 모두 지원하며, 성능과 자원 효율이 좋아서, 인기 있게 사용되는 알고리즘
  • CART(Classification And Regression Tree) 기반의 앙상블 학습에서 가장 각광받고 있는 알고리즘
  • early stopping 제공
  • GBM 기반이지만, GBM의 단점인 느린 수행 시간 및 과적합 규제 부재 등의 문제가 해결됨
  • 병렬 CPU 환경에서 병렬학습이 가능하여 기존 GBM보다 빠르게 학습 완료할 수 있음

Ensemble

  • Ensemble은 방식에 따라서 Bagging과 Boosting 으로 분류
  • Ensemble은 여러개의 모델을 조합해서 그 결과를 뽑아 내는 방법
  • 정확도가 높은 강한 모델을 하나 보다, 정확도가 낮은 약한 모델을 여러 개 조합 하는 방식이 정확도가 높다는 방법에 기반한 방법

Bagging

  • Bagging은 여러 모델을 사용할때, 각 모델에서 나온 값을 계산하여, 최종 결과값을 내는 방식
  • 모델 m1~m3 로 데이터를 넣을때는 원본 데이타 x에서 매번 다시 샘플링을 해서 다른 샘플 데이터를 각각 모델에 넣는 방식

Boosting

  • Boosting 기법을 이용하여 구현한 알고리즘은 Gradient Boost가 대표적인데, 이 알고리즘을 병렬  학습이 지원되도록 구현한 라이브러리가 XGBoost임
  • Boosting은 m1~3 모델이 있을때, m1에는 x에서 샘플링된 데이터를 넣음
  • 이후, 나온 결과중에서 예측이 잘못된 x중의 값들에 가중치를 반영해서 다음 모델인 m2에 넣음
  • 마찬가지로 y2 결과에서 예측이 잘못된 x’에 값들에 가중치를 반영해서 m3에 넣음
  • 그리고, 각 모델의 성능이 다르기 때문에 각 모델에 가중치 W를 반영함

Overfitting

  • 머신러닝에서 학습 데이터를 과하게 학습함
  • 학습 데이터는 실제 데이터의 부분 집합이므로, 학습데이터에 대해서 오차가 감소하지만, 실제 데이터에서는 오차가 증가하게 됨
  • 실제 데이터를 모두 수집하는 것은 불가능함
  • 실제 데이터를 모두 수집하여도 모든 데이터를 학습시키기 위한 시간이 측정 불가능한 수준으로 증가할 수 있음
  • 학습 데이터만 가지고 있어서는 실제 데이터의 오차가 증가하는 지점을 예측하는 것은 매우 어려움
728x90
반응형

댓글