Files
fumen-measure-analyze/docs/3-2.lightgbm.md
2026-04-25 16:51:07 +09:00

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를 통해 아주 미세한 채보의 차이까지 학습하는 것을 목표로 하고 있습니다.