728x90
Boosting
- 순차적으로 모델의 정확도를 높이는 방법
- 전체 학습 데이터에서 일부를 선택한 하위 데이터 세트와 이를 학습할 첫번째 모델을 만든다. 그리고 첫번째 모델이 잘 학습하지 못한 부분을 반영해서 두번째 데이터 세트와 두번째 모델을 만든다. 이를 반복해서 점진적으로 모델의 정확도를 높인다.
- Boosting 기법을 이용하여 구현한 대표 알고리즘은 Gradient Boost이다.
- Gradient Boost 알고리즘을 병렬 학습이 지원되도록 구현한 것이 XGBoost
XGBoost
- Regression, Classification 모두 지원
- 성능과 효율이 좋아서 자주 사용되는 알고리즘이다.
- 특징
- GBM보다 빠르다.
- 과적합 방지가 가능한 규제가 포함되어 있다. (조기 종료)
- CART(Classification and regression tree) 앙상블 모델을 사용
- Missing Values : 결측치를 내부적으로 처리해준다.
- 하이퍼 파라미터
- objective : 목적함수
- n_estimators : 트리 수
- tree_method : gpu 사용
- eval_set : 성능 평가를 수행할 데이터 세트
- eval_metric : 조기 종료를 위한 평가 지표
- early_stopping_rounds : 조기 종료 조건, 평가 지표가 향상될 수 있는 반복 횟수
- verbose : 학습 결과 출력 조건
- ...
from xgboost import XGBClassifier
model = XGBClassifier(n_estimators=200, learning_rate=0.01, max_depth=5, random_state = 0)
model.fit(train.drop(columns='Survived'),train['Survived'])
y_pred = model.predict(val_x)
Early Stopping
- 모델이 과적합 되기 전 훈련을 멈추는 정규화 기법
- 훈련 중 주기적으로 성능 검증을 하다가 성능이 더 좋아지지 않으면 과적합이라고 판단하고 훈련을 멈춘다.
728x90
반응형
'TIL - 외 > 빅데이터' 카테고리의 다른 글
[빅데이터] 데이터 불균형 처리 - SMOTE (0) | 2023.07.07 |
---|---|
[빅데이터] 분류 모형 결과 평가 2. ROC 곡선 (0) | 2023.07.07 |
[빅데이터] 분류 모형 결과 평가 1. 혼동 행렬 (0) | 2023.07.07 |
코호트 분석1 (0) | 2023.06.19 |
[머신러닝] 랜덤 포레스트 (Random Forest) (0) | 2023.05.24 |
댓글