다양한 모델의 성능을 비교하기 위해 총 6개의 분류 모델(Logistic Regression, SVC, RandomForest, XGBoost, LightGBM, CatBoost)을 후보 모델로 선정하였다.
전체 데이터는 먼저 Train set(80%)과 Test set(20%)으로 분할한 뒤, Train set을 다시 Train(64%)과 Validation set(16%)으로 분할하였다. Validation set은 모델 비교 및 하이퍼파라미터 튜닝에 사용하였고, Test set은 최종 모델 평가에만 사용하였다.
또한 전처리는 데이터 누수를 방지하기 위해 학습 데이터 기준으로만 수행하였다. 튜닝 단계에서는 X_tr 기준으로 전처리를 학습한 후 Validation set에 적용하였고, 최종 평가 단계에서는 X_train 전체를 기준으로 다시 전처리를 수행한 뒤 Test set에 적용하였다.
초기 모델 성능 비교 결과, Gradient Boosting 계열 모델(XGBoost, LightGBM, CatBoost)이 상대적으로 높은 성능을 보여 해당 모델들을 중심으로 추가 튜닝을 진행하였다.
| 모델 | 선정 이유 | |
|---|---|---|
| Logistic Regression | 선형 기반 분류 모델로 baseline 성능 비교에 적합 | |
| SVC | 마진 기반 분류 모델로 비선형 데이터 분류 가능 | |
| RandomForest | Bagging 기반 앙상블 모델로 안정적인 baseline 제공 | |
| XGBoost | Gradient Boosting 기반으로 높은 예측 성능 | |
| LightGBM | 빠른 학습 속도와 높은 성능 | |
| CatBoost | Ordered Boosting 구조로 안정적인 학습 |
HyperOpt 기반 Bayesian Optimization 기법을 활용하여 하이퍼파라미터 튜닝을 수행하였다.

초기 모델 성능 비교 결과, Gradient Boosting 기반 모델들이 가장 높은 성능을 보였다.
따라서 프로젝트에서는 성능 개선 가능성이 높은 Gradient Boosting 계열 모델(XGBoost, LightGBM, CatBoost)에 집중하여 하이퍼파라미터 튜닝을 수행하고, RandomForest는 baseline 모델로만 활용하였다.
각 모델별 주요 하이퍼파라미터 후보군을 설정한 뒤, Validation set의 F1-score를 기준으로 최적 파라미터 조합을 탐색하였다.
최적 파라미터를 찾은 후에는 해당 파라미터를 적용하여 X_train 전체로 모델을 다시 학습하였고, Test set에서 최종 성능을 평가하였다.
각 모델의 주요 하이퍼파라미터 후보군을 설정한 후 Validation set의 성능을 기준으로 최적 파라미터 조합을 탐색하였다.
| 모델 | 주요 튜닝 특징 |
|---|---|
| XGBoost | 트리 수, 깊이, 샘플링 비율 중심 튜닝 |
| LightGBM | num_leaves를 포함해 leaf-wise 구조까지 함께 튜닝 |
| CatBoost | l2_leaf_reg를 포함해 정규화 강도까지 조정 |
XGBoost는 Gradient Boosting 기반 모델로, 이전 트리의 오차를 보완하면서 순차적으로 학습을 진행하는 구조를 가진다.
따라서 모델 성능에 큰 영향을 미치는 트리 복잡도 및 학습률 관련 파라미터를 중심으로 튜닝을 수행하였다.
탐색 파라미터 설정
| 파라미터 | 설명 |
|---|---|
n_estimators |
생성할 트리의 개수 |
learning_rate |
학습률 (각 트리가 반영되는 정도 조절) |
max_depth |
트리의 최대 깊이 |
subsample |
각 트리 학습 시 사용할 데이터 샘플 비율 |
colsample_bytree |
트리 생성 시 사용할 feature 샘플 비율 |