7.2.5 앙상블 알고리즘
머신러닝에서 앙상블이란 여러 파라미터로 복수의 모델을 만든 후 이를 조합한 모델을 생성하는 것을 뜻합니다. 효과적인 앙상블 모델을 만들기 위해서는 모델을 조합하는 방식을 이해해야 합니다. 몇 가지 앙상블 알고리즘을 알아봅시다.
XGBoost 알고리즘으로 그레이디언트 부스팅 구현하기
2014년에 공개된 XGBoost 알고리즘은 그레이디언트 부스팅 방식을 사용하며, 가장 인기 있는 앙상블 알고리즘입니다. 이 알고리즘은 서로 연결된 트리 집단을 생성하고 경사하강법을 사용하여 잔여 오차(residual error)를 최소화합니다. 이러한 특징 때문에 XGBoost 알고리즘은 아파치 스파크 등 분산 처리 인프라나 구글 클라우드 플랫폼, 아마존 웹 서비스(AWS) 등 클라우드 컴퓨팅 환경과 궁합이 잘 맞습니다.
XGBoost 알고리즘으로 그레이디언트 부스팅을 구현하는 방법을 살펴봅시다.
1. XGBClassifier 분류 모델의 인스턴스를 생성하고 훈련 데이터로 모델을 훈련합니다.
▼ myxgboost.ipynb
[in :]
from xgboost import XGBClassifier
classifier = XGBClassifier()
classifier.fit(X_train, y_train)
[out:]
XGBClassifier(base_score=0.5, booster='gbtree', colsample_bylevel=1,
colsample_bynode=1, colsample_bytree=1, gamma=0,
learning_rate=0.1, max_delta_step=0, max_depth=3,
min_child_weight=1, missing=None, n_estimators=100, n_jobs=1,
nthread=None, objective='binary:logistic', random_state=0,
reg_alpha=0, reg_lambda=1, scale_pos_weight=1, seed=None,
silent=None, subsample=1, verbosity=1)