Coding/TIL & 배운것들

앙상블 학습 (Ensemble Learning)

코딩짜는 머글 2024. 10. 31. 19:43

앙상블 학습이란?

기존에 있던 모델에 다양한 기법을 적용하여 좀 더 나은 모델을 만드는 방법. 주요 학습법에는 배깅(Bagging)부스팅(Boosting)이 있다.

 

배깅(Bagging) : 여러개의 모델을 병렬로 학습. 예측결과를 평균 또는 다수결로 결합한다. 부트스트래핑 기법을 사용해 원본 데이터셋에서 중복을 허용한 무작위 샘플을 생성함. 각 모델은 서로 다른 데이터 샘플을 학습하게 되어, 모델 간의 상관성을 줄이고 예측 성능을 향상시킨다.

 

부스팅(Boosting) : 약한 학습기부터 순차적으로 학습한뒤 예측 결과를 결합하여 강한 학습기를 만드는 방법이다. 이전 모델이 잘못 예측한 데이터 포인트에 가중치를 부여하여, 다음 모델이 더 잘 학습하도록 한다.

 

 

 

랜덤 포레스트(Random Forest)

 

배깅 기법을 기반으로 한 앙상블 학습 모델. 여러 개의 결정트리를 학습시키고, 그 예측 결과를 결합하여 최종 예측을 수행한다. 분류와 회귀 모두 사용가능하다.

  • 데이터 샘플링의 무작위성 : 각 결정트리는 원본 데이터셋에서 무작위로 샘플링된 데이터로 학습된다.
  • 특성 선택의 무작위성 : 각 노드에서 분할을 수행할 때, 무작위로 선택된 특성의 일부만을 사용한다.

이러한 무작위성은 모델의 상관성을 줄이고, 예측 성능을 향상시킨다.

 

 

그래디언트 부스팅 머신(GBM)

 

부스팅을 사용하여 결정트리를 학습시키는 모델. 각 트리가 독립적으로 학습되기 때문에 과적합을 방지하고 예측 성능을 향상시킬 수 있다.

 

원리

  1. 초기 모델 학습 : 척 번째 결정 트리를 학습시켜 초기 모델을 만든다.
  2. 잔여 오차 계산 : 초기 모델의 예측 결과와 실제 값 간의 잔여 오차를 계산한다.
  3. 잔여 오차 학습 : 잔여 오차를 예측하는 새로운 결정 트리를 학습시킨다.
  4. 모델 업데이트 : 새로운 결정 트리를 기존 모델에 추가하여 모델을 업데이트한다.
  5. 반복 : 잔여 오차가 충분히 작아질 때까지 2~4 단계를 반복한다.

 

XG Boost 

 

GBM의 업그레이드 버전. 순차적으로 학습하지만 병렬도 가능하다. 병렬 처리, 조기 종료, 정규화 등의 기능을 통해 성능을 극대화한다. 구조와 원리는 GBM과 거의 동일. 

 

장점 

  • 병렬 처리 : 트리의 분할을 병렬로 수행하여. 학습 속도를 향상시킨다. 
  • 조기 종료 : 검증 데이터셋의 성능이 향상되지 않으면 학습을 조기에 종료하여 과적합을 방지한다. 
  • 정규화 : L1 및 L2 정규화를 통해 모델의 복잡도를 조절하고 과적합을 방지한다.
  • 유연성 : 다양한 손실 함수와 평가 지표를 지원하여 다양한 문제에 적용할 수 있다.