I. 머신러닝 실험 및 앙상블 학습 팁 요약 (2024-11-05)
in Til on Til
1. 디버깅 모드
실험 환경 설정 및 검증을 위해 디버깅 모드를 활용:
- 프로세스 축소:
- 샘플 데이터로 테스트.
- 작은 규모의 모델 사용.
- 하이퍼파라미터 수 축소.
랜덤 시드 고정으로 재현성 확보.
2. 실험 기록
- 조건을 하나씩 변경하며 실험 진행 권장.
결과를 체계적으로 기록해 비교.
3. 앙상블 학습 전략
데이터 기반 앙상블
- K-fold 교차 검증으로 데이터 다변화.
모델 기반 앙상블
- LightGBM과 CatBoost 조합 권장.
- Linear Regression과 Boosting 각각의 장점을 확인.
- Boosting과 Neural Network를 결합하는 경우도 존재.
성능 요건:
- 개별 모델의 기본 성능이 어느 정도 보장되어야 함.
- 상관 관계가 낮은(서로 다른) 모델을 결합해 성능 향상.
Stacking:
- 각 모델의 예측 결과를 새로운 피처로 사용하여 추가 학습.
- 대회에서 종종 활용되지만, 비선호하는 경우도 있음.
랜덤성 활용:
앙상블 과정에서 랜덤성을 적절히 활용하여 다양성을 확보.
4. 기타
- 앙상블에 들어가는 모델은 각기 다른 특징과 장점을 가져야 효과적.
II. Study
1. 앙상블 학습 개요
앙상블 학습은 여러 모델의 예측 결과를 결합하여 일반화 성능을 높이는 기법으로, 주로 Bagging과 Boosting 두 가지 방식이 있다.
주요 개념
- Bootstrap:
- 복원 추출을 사용하여 표본을 생성하고 모집단 통계량을 추론하는 통계적 방법.
- 복원 추출을 통해 각 표본이 독립적으로 구성됨.
- Tree Ensemble:
- Bagging과 Boosting을 기반으로 한 결정 트리 기반 앙상블 기법.
- 결과 결합 방법:
- Voting:
- 분류 문제(categorical)에서 다수결로 최종 결과 결정.
- Average:
회귀 문제(continuous)에서 평균값으로 최종 결과 계산.
2. Bagging (Bootstrap + Aggregation)
- Voting:
- 정의:복원 추출로 생성된 여러 데이터 서브셋을 독립적으로 학습시키고 결과를 결합하는 방식.
- 작동 원리:
- Bootstrap 샘플링으로 데이터 서브셋 생성.
- 각 서브셋을 독립적인 모델로 학습.
- 결과를 Aggregation(voting/average)하여 최종 예측 생성.
- 대표 모델:랜덤 포레스트(Random Forest).
- 장점:
- 분산 감소로 일반화 성능 향상.
과적합 완화.
3. Boosting
- 정의:이전 모델의 예측 오류를 개선하는 방식으로 모델을 순차적으로 학습하며 성능을 점진적으로 향상.
- 작동 원리:
- 첫 모델 학습 후 예측 오류(Residual)를 계산.
- 오류를 개선하는 방향으로 다음 모델 학습.
- 가중치를 조정하여 최종 예측 생성.
- 대표 알고리즘:
- 에이다부스트(AdaBoost):이전 모델의 오류에 가중치를 부여해 다음 모델 학습에 반영.
- 그라디언트 부스팅 머신(GBM):손실 함수의 그래디언트에 따라 잔차를 줄이는 방향으로 학습.
- XGBoost: GBM의 개선형으로 학습 속도와 정확도 향상.
- LightGBM: 대규모 데이터셋에 최적화.
- CatBoost: 범주형 데이터 처리에 특화.
- 장점:
- 높은 예측 정확도.
- 점진적 성능 향상.
- 단점:
- 계산 비용이 높음.
과적합 가능성.
4. Bagging vs. Boosting 비교
| 특징 | Bagging | Boosting | | — | — | — | | 데이터 구성 | 독립적 표본 구성 (복원 추출) | 이전 모델 오류를 기반으로 구성 | | 모델 학습 | 각 모델 독립적으로 학습 | 이전 모델의 성능 영향을 받음 | | 목적 | 분산 감소 | 편향 감소 | | 결과 결합 방식 | Voting | Weighted Averaging | —
5. Gradient Boosting Machine (GBM)
- 작동 원리:
- 잔차(Residual: Y−Prediction)를 예측하는 결정 트리 학습. Y−PredictionY - \text{Prediction}
- 각 리프 노드의 평균값을 계산.
- 새로운 모델로 예측값 갱신.
- 문제점:
- 모든 데이터와 피처를 스캔하여 그래디언트를 계산 → 높은 계산 비용.
- 잔차가 0에 가까울 경우 과적합 발생 가능.
- 규제(Regularization):
- Subsampling: 일부 데이터를 추출해 학습.
- Shrinkage: 추가 모델의 영향력을 조정(learning rate로 조절).
Early Stopping: 과적합 방지를 위해 학습 조기 종료.
6. LightGBM
- 목적:GBM의 계산 비용 문제와 대규모 데이터 학습의 한계를 극복.
- 핵심 기술:
- GOSS (Gradient-based One-Side Sampling):
- 그래디언트 값에 따라 데이터 샘플을 정렬하여 중요한 샘플(그래디언트 큰 값)을 우선적으로 학습.
- 데이터 인스턴스 감소로 학습 효율 향상.
- EFB (Exclusive Feature Bundling):
- 피처들 간의 충돌(conflict)을 최소화하면서 피처 수를 줄이는 방법.
- 피처를 번들로 묶어 계산량 감소.
EFB 세부 사항
- GOSS (Gradient-based One-Side Sampling):
- 충돌(conflict):
- 두 피처가 동시에 0이 아닌 값을 가지는 경우.
- 파라미터:
max_conflict_count:허용 가능한 최대 충돌 수. 값이 클수록 더 많은 피처를 묶을 수 있지만 정보 손실 우려.7. LightGBM 주요 파라미터
1) 학습 전략:
boosting: 모델 학습 방식.- gbdt (default), rf, dart 등.
objective: 학습 목표.- 회귀(
regression), L1 손실(regression_l1), 교차 엔트로피(cross_entropy).2) 과적합 방지:
- 회귀(
max_depth: 트리의 최대 깊이.num_leaves: 리프 노드의 최대 개수.min_data_in_leaf: 각 리프에 포함된 최소 데이터 수.3) 속도 향상:
feature_fraction: 피처 하위 집합 무작위 선택 비율.bagging_fraction: 데이터(row) 하위 집합 무작위 선택 비율.