Coding/TIL & 배운것들
앙상블 학습 (Ensemble Learning)
코딩짜는 머글
2024. 10. 31. 19:43
앙상블 학습이란?
기존에 있던 모델에 다양한 기법을 적용하여 좀 더 나은 모델을 만드는 방법. 주요 학습법에는 배깅(Bagging)과 부스팅(Boosting)이 있다.
배깅(Bagging) : 여러개의 모델을 병렬로 학습. 예측결과를 평균 또는 다수결로 결합한다. 부트스트래핑 기법을 사용해 원본 데이터셋에서 중복을 허용한 무작위 샘플을 생성함. 각 모델은 서로 다른 데이터 샘플을 학습하게 되어, 모델 간의 상관성을 줄이고 예측 성능을 향상시킨다.
부스팅(Boosting) : 약한 학습기부터 순차적으로 학습한뒤 예측 결과를 결합하여 강한 학습기를 만드는 방법이다. 이전 모델이 잘못 예측한 데이터 포인트에 가중치를 부여하여, 다음 모델이 더 잘 학습하도록 한다.
랜덤 포레스트(Random Forest)
배깅 기법을 기반으로 한 앙상블 학습 모델. 여러 개의 결정트리를 학습시키고, 그 예측 결과를 결합하여 최종 예측을 수행한다. 분류와 회귀 모두 사용가능하다.
- 데이터 샘플링의 무작위성 : 각 결정트리는 원본 데이터셋에서 무작위로 샘플링된 데이터로 학습된다.
- 특성 선택의 무작위성 : 각 노드에서 분할을 수행할 때, 무작위로 선택된 특성의 일부만을 사용한다.
이러한 무작위성은 모델의 상관성을 줄이고, 예측 성능을 향상시킨다.
그래디언트 부스팅 머신(GBM)
부스팅을 사용하여 결정트리를 학습시키는 모델. 각 트리가 독립적으로 학습되기 때문에 과적합을 방지하고 예측 성능을 향상시킬 수 있다.
원리
- 초기 모델 학습 : 척 번째 결정 트리를 학습시켜 초기 모델을 만든다.
- 잔여 오차 계산 : 초기 모델의 예측 결과와 실제 값 간의 잔여 오차를 계산한다.
- 잔여 오차 학습 : 잔여 오차를 예측하는 새로운 결정 트리를 학습시킨다.
- 모델 업데이트 : 새로운 결정 트리를 기존 모델에 추가하여 모델을 업데이트한다.
- 반복 : 잔여 오차가 충분히 작아질 때까지 2~4 단계를 반복한다.
XG Boost
GBM의 업그레이드 버전. 순차적으로 학습하지만 병렬도 가능하다. 병렬 처리, 조기 종료, 정규화 등의 기능을 통해 성능을 극대화한다. 구조와 원리는 GBM과 거의 동일.
장점
- 병렬 처리 : 트리의 분할을 병렬로 수행하여. 학습 속도를 향상시킨다.
- 조기 종료 : 검증 데이터셋의 성능이 향상되지 않으면 학습을 조기에 종료하여 과적합을 방지한다.
- 정규화 : L1 및 L2 정규화를 통해 모델의 복잡도를 조절하고 과적합을 방지한다.
- 유연성 : 다양한 손실 함수와 평가 지표를 지원하여 다양한 문제에 적용할 수 있다.