
XGBoost는 GBM기반이나 GBM의 단점들을 보완해서 많은 각광을 받고 있음
캐글 대회에서도 자주 사용되는 모델
XGBClassifier(분류) / XGBRegressor(회귀)
booster(Default : gbtree) : 부스팅 알고리즘(dart, gblinear)
objective(Default : binary:logistic) : 이진분류
(다중분류 : multi:softmax)
max_depth(Default : 6) : 최대 한도 깊이
learning_rate(Default : 0.1) : 학습 률
n_estimators(Default : 100) : 트리 개수
subsample(Default : 1) : 훈련 샘플 개수의 비율
colsample_bytree(Default : 1) : 특성 개수 비율
n_jobs(Default) : 사용 코어 수(-1 : 모든 코어 사용)
eval_metric :
from xgboost import XGBClassifier
model = XGBClassifier(
booster = 'gbtree',
objective = 'binary:logistic',
max_depth = 5,
learning_rate = 0.05,
n_estimators = 500,
subsample = 1,
colsample_bytree = 1,
n_jobs = -1,
eval_metric = 'logloss',
random_state = 0)
model.fit(x_train, y_train)
pred = model.predict(x_test)
accuracy_score(y_test, pred)

from xgboost import XGBClassifier
model = XGBClassifier(
random_state=0,
learning_rate=0.05,
n_estimators=500,
eval_metric='logloss',
early_stopping_rounds=10
)
eval_set = [(x_test, y_test)]
model.fit(
x_train,
y_train,
eval_set=eval_set,
)
pred = model.predict(x_test)
accuracy_score(y_test, pred)
early_stopping_rounds = 10 : 10번 동안 loss의 변화가 없으면 조기 종료