data-science-summary/summary
XGBoost in python
고수트
2020. 9. 20. 18:05
반응형
<엔지니어는 구현을 못하면 모르는것이다>
Boosting 방식의 일종
Gradient boosting 보다는 빠름, GBM 에 과적합 방지가 가능한 regulation 포함된 모델 + 다양한 loss function을 지원하는 모델이다.
from xgboost import XGBClassifier
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
X, y = make_classification(random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
# max_depth : 트리의 최대 깊이를 정의, gamma= 노드가 split 되기 위한 loss function 값이 감소하는 최소값을 정의
# early_stopping_rounds : n 번 반복동안 성능좋아지지 않으면 멈춤 => 불필요한 시간 낭비 줄임
# 조기 종료시 어떤 데이터를 볼것인지 정해줌
evals = [(X_test, y_test)]
clf = XGBClassifier(max_depth=10, gamma=0.001, early_stopping_rounds=20, eval_set = evals)
clf.fit(X_train, y_train)
print(clf.predict(X_test))
# 정확도
print(clf.score(X_test, y_test))
# feature의 중요도 파악
clf.feature_importances_
반응형