반응형
이전 포스트에서는 XGBoost를 사용해 모델을 학습하고, 기본 설정으로도 꽤 괜찮은 성능을 확인할 수 있었습니다. 하지만 기본 파라미터만으로는 모델의 최대 성능을 끌어내기 어렵습니다.
이번 에피소드에서는 GridSearchCV를 활용해 하이퍼파라미터 튜닝을 해보며, 성능을 한 단계 더 끌어올려 보겠습니다.
✅ 1. 사용할 라이브러리 불러오기
from sklearn.model_selection import GridSearchCV
import xgboost as xgb
✅ 2. 파라미터 후보 설정
우리는 다음과 같은 XGBoost 주요 파라미터를 탐색합니다:
- n_estimators: 트리 개수
- max_depth: 각 트리의 최대 깊이
- learning_rate: 학습률
param_grid = {
'n_estimators': [100, 200],
'max_depth': [3, 4, 5],
'learning_rate': [0.01, 0.1, 0.2]
}
✅ 3. GridSearchCV로 튜닝 실행
xgb_clf = xgb.XGBClassifier(use_label_encoder=False, eval_metric='logloss')
grid_search = GridSearchCV(estimator=xgb_clf,
param_grid=param_grid,
cv=5,
scoring='accuracy',
verbose=1)
grid_search.fit(X, y)
튜닝이 완료되면 아래처럼 최적 파라미터와 최고 정확도를 확인할 수 있습니다:
print("Best Parameters:", grid_search.best_params_)
print("Best Score:", grid_search.best_score_)
✅ 4. 최적 모델로 재학습 및 제출 파일 생성
best_model = grid_search.best_estimator_
final_preds = best_model.predict(X_test)
submission = pd.DataFrame({
'PassengerId': test['PassengerId'],
'Survived': final_preds
})
submission.to_csv('submission_tuned.csv', index=False)
📌 튜닝 팁
- GridSearchCV는 시간이 오래 걸릴 수 있습니다. 후보를 줄이거나 RandomizedSearchCV로 빠르게 탐색할 수도 있습니다.
- 성능 평가 기준을 accuracy 외에 f1, roc_auc 등으로 바꿔볼 수도 있습니다.
✍️ 정리
- 하이퍼파라미터 튜닝은 모델 성능 향상의 핵심
- 기본 설정보다 1~3% 이상 정확도 향상이 가능한 경우도 많음
🔜 다음 예고
이제 Titanic 대회의 기본 흐름은 모두 정리되었습니다.
다음에는 지금까지의 과정을 정리하거나, Ensemble 기법 또는 다른 대회 도전을 준비해볼 예정입니다!
감사합니다 🙌
반응형
'04. 캐글' 카테고리의 다른 글
| 00013. [KAG-002] House Prices 예측 #2 - 데이터 탐색 및 시각화 (0) | 2025.04.15 |
|---|---|
| 00012. [KAG-002] House Prices 예측 #1 - 대회 분석 및 계획 세우기 (0) | 2025.04.15 |
| 00010. [KAG-001] Titanic 생존자 예측 #6 - XGBoost로 정밀하게 예측하기 (0) | 2025.04.04 |
| 00009. [KAG-001] Titanic 생존자 예측 #5 - 특성 공학으로 성능 끌어올리기 (1) | 2025.04.04 |
| 00008. [KAG-001] Titanic 생존자 예측 #4 - 제출 파일 생성 및 Kaggle 업로드 (0) | 2025.04.04 |