현존 머신러닝 모델중 가장 우월한 XGBoost 모델¶
XGBoost에 대해 알아보자¶
- Boosting 이란?
- 여러 개의 약한 의사결정나무(Decision Tree)를 조합해서 사용하는 앙상블(Ensemble) 기법 중 하나
- 즉, 약한 예측 모형들의 학습 에러에 가중치를 두고, 순차적으로 다음 학습 모델에 반영하여 강한 예측모형을 만든다.
- XGBoost 란?
- XGBoost는 Extreme Gradient Boosting의 약자이다. 해석하면 극한 변화도(경사도) 부스팅
- Boosting 기법을 이용하여 구현한 알고리즘은 Gradient Boost 가 대표적
- 이 알고리즘을 병렬 학습이 지원되도록 구현한 라이브러리가 XGBoost 이다.
- Regression, Classification 문제를 모두 지원하며, 성능과 자원 효율이 좋아서, 인기 있게 사용되는 알고리즘 이다.
- XGBoost의 장점
- GBM 대비 빠른 수행시간
- 병렬 처리로 학습, 분류 속도가 빠르다.
- 과적합 규제(Regularization)
- 표준 GBM 경우 과적합 규제기능이 없으나, XGBoost는 자체에 과적합 규제 기능으로 강한 내구성 지닌다.
- 분류와 회귀영역에서 뛰어난 예측 성능 발휘
- 즉, CART(Classification and regression tree) 앙상블 모델을 사용
- Early Stopping(조기 종료) 기능이 있음
- 다양한 옵션을 제공하며 Customizing이 용이하다.
- Missing Values : 결측치를 내부적으로 처리해준다. 실제로 kaggle에 적용해보는 과정에서 편리함
Sample code. XGBClassifier¶
In [ ]:
import xgboost as xgb
from xgboost import XGBClassifier
# Extreme Gradient Boosting (xgboost) 모델 사용
# 1. 모델 선언
xgb = XGBClassifier()
# 2. 모델 훈련 fit()함수
xgb.fit(X_train, Y_train)
# 3. 모델 예측 predict()함수
Y_pred = xgb.predict(X_test)
# 4. score()
xgb.score(X_train, Y_train)
'kaggle' 카테고리의 다른 글
자살률 시각화(with 캐글) (0) | 2021.08.20 |
---|---|
의료데이터 입문(with 캐글) (0) | 2021.08.20 |
kaggle_Bike Sharing Demand[입문용] (0) | 2021.05.22 |
kaggle_titanic_XGBoost 추가 (0) | 2021.05.15 |
kaggle_titanic 생존자예측하기 (0) | 2021.05.03 |