데이터분석 공부/ML | DL
[ML] XGBoost
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로 수평적으로 확장됩니다
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