Boosting Algorithm
GBM
- 데이터 로드
- 데이터 학습하기
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.metrics import accuracy_score
import time
import warnings
warnings.filterwarnings('ignore')
gb_clf = GradientBoostingClassifier(random_state=13)
gb_clf.fit(X_train, y_train)
gb_pred = gb_clf.predict(X_test)
print(f'AAC : {accuracy_score(y_test, gb_pred)}')
- 성능 자체는 랜덤 포레스트보다 좋다고 알려져 있다
- 하지만 Gradient 방식이기 때문에 느리다,,
- GridSearch
from sklearn.model_selection import GridSearchCV
params = {
'n_estimators' : [100,500],
'learning_rate' : [0.05,0.1]
}
grid = GridSearchCV(gb_clf, param_grid=params , cv = 2, verbose=1, n_jobs=-1)
grid.fit(X_train, y_train)
XGBoost
- 트리 기반의 앙상블 학습에서 가장 각광받는 알고리즘 중 하나
- GBM 기반이지만 다양한 규제를 통해 해결
- 병렬 학습이 가능하도록 설계
- 반복 수행 시마다 내부적으로 학습데이터와 검증데이터를 교차검증을 수행
- 교차검증을 통해 최적화되면 반복을 중단하는 조기 중단 기능을 가지고 있음
- 학습하기 전에!