2.7 KiB
2.7 KiB
LightGBM 기반 난이도 상수 예측 모델
이 문서는 프로젝트의 또 다른 학습 엔진인 LightGBM 모델의 구조, 하이퍼파라미터 및 특징을 설명합니다.
1. 모델 개요
**LightGBM (Light Gradient Boosting Machine)**은 트리 기반 학습 알고리즘으로, XGBoost와 유사하지만 'Leaf-wise' 트리 성장 방식을 사용하여 더 빠르고 메모리 효율적인 학습이 가능합니다. 특히 대규모 데이터셋에서 높은 성능을 발휘하며, 본 프로젝트에서는 XGBoost와의 비교 및 앙상블 가능성을 열어두기 위해 도입되었습니다.
2. 하이퍼파라미터 설정
train/train_lightgbm.py에 정의된 주요 설정값은 다음과 같습니다. XGBoost보다 더 깊고 복잡한 트리를 형성하도록 설정되어 있습니다.
| 파라미터 | 설정값 | 설명 |
|---|---|---|
learning_rate |
0.02 | 학습률. XGBoost(0.05)보다 낮게 설정하여 더 정밀하게 수렴 |
num_leaves |
63 | 하나의 트리가 가질 수 있는 최대 잎(Leaf) 수. 복잡한 패턴 학습에 유리 |
n_estimators |
3000 | 결정 트리의 개수. 충분한 학습을 위해 크게 설정 |
feature_fraction |
0.9 | 각 트리 학습 시 사용할 피처 비율 (과적합 방지) |
bagging_fraction |
0.8 | 데이터 샘플링 비율 |
bagging_freq |
5 | 배깅 수행 빈도 |
early_stopping |
100 | 검증 오차가 개선되지 않을 경우 학습을 조기 종료하는 라운드 수 |
3. LightGBM 모델의 특징
A. Leaf-wise 성장 방식
- 대부분의 boosting 알고리즘이 Level-wise(수평 성장) 방식을 사용하는 것과 달리, LightGBM은 Leaf-wise(수직 성장) 방식을 사용합니다.
- 이 방식은 손실(Loss)을 가장 많이 줄일 수 있는 잎 노드를 계속 분할하므로, 동일한 분할 횟수에서 Level-wise보다 더 낮은 손실을 달성할 수 있습니다.
B. 실행 속도 및 효율성
- XGBoost 대비 학습 속도가 매우 빠르며 메모리 사용량이 적습니다.
- 많은 양의 데이터를 처리할 때 이점이 큽니다.
4. 학습 및 검증 프로세스
XGBoost와 동일한 파이프라인을 따르며, 결과물은 다음과 같이 구분되어 저장됩니다.
- 모델 파일:
model_lgbm.pkl - 스케일러:
scaler_lgbm.pkl - 피처 목록:
features_lgbm.txt - 검증 결과:
validate.json,validate.png
5. 모델 평가
- LightGBM은 하이퍼파라미터 변화에 민감하므로 과적합(Overfitting) 여부를
validate.png를 통해 상시 모니터링해야 합니다. - 현재 설정은 높은
n_estimators와 낮은learning_rate를 통해 아주 미세한 채보의 차이까지 학습하는 것을 목표로 하고 있습니다.