JEONGHEON 2023. 1. 20. 17:49

XGBoost

XGBoost는 "eXtreme Gradient Boosting"에서 따온 이름입니다

 

XGBoost는 Gradient Boosting 방법 중 하나로 많은 장점이 존재합니다

 

장점

  • 효율성, 유연성이 뛰어남
  • overfitting 방지 가능(과적합 규제)
  • 신경망 모델에 비해 시각화와 직관적인 이해가 쉬움
  • cross validation을 지원
  • 높은 성능을 나타내어 kaggle, dacon에 많이 사용
  • early stopping(조기종료) 기능이 있음
  • missing value를 내부적으로 처리

단점

  • 하이퍼파라미터 수가 너무 많음

XGBoost는 앞선 LightGBM 포스팅에서 본 것과 같이 level-wise로 수평적으로 확장됩니다

<XGBoost : level-wise>

 

 

Python 실습

import numpy as np

import warnings
warnings.filterwarnings('ignore')
from sklearn.datasets import load_iris
iris = load_iris()

X, y = iris['data'], (iris['target'] == 2).astype(np.float64)
from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=124)
from xgboost import XGBClassifier

model = XGBClassifier(random_state=42)
model.fit(X_train, y_train)

pred = model.predict(X_test)
from sklearn.metrics import accuracy_score

print('XGBoost Accuracy : ', round(accuracy_score(y_test, pred) * 100, 2))

>>> XGBoost Accuracy :  90.0