- 앙상블(Ensemble)
- 어떤 데이터를 학습할 때, 여러 개의 모델을 조화롭게 학습 시켜 그 모델들의 에측 결과들을 이용하여 더 정확한 예측 값을 구할 수 있다.
- 앙상블(Ensemble) 종류
- Bagging(Bootstrap Aggregating) : Reduce the Variance
- Stacking: Use another prediction model
- Boosting : Reduce the Bias
- 이제 종류별로 하나하나 자세히 살펴보자!
- Bagging (Bootstrap Aggregating)
- 배깅(Bagging, Bootstrap Aggregating)은 머신러닝 앙상블 기법 중 하나로, 여러 개의 모델을 병렬로 학습시키고 이 모델들의 예측을 결합하여 성능을 향상시키는 방법이다.
- 배깅의 주요 아이디어는 원본 데이터셋에서 여러 개의 부트스트랩(Bootstrap) 샘플을 생성하고, 각 샘플로 개별 모델을 학습시킨 다음, 이 모델들의 예측을 결합(Aggregating)하여 최종 예측을 도출하는 것이다.
- Bootstrap : 표본에서 추가적으로 표본을 복원 추출하고 각 표본에 대한 통계량을 다시 계산하는 것
- Bootstrap을 무한히 진행하면 확률 상 뽑히지 못한 데이터는 36.8%가 된다.
- Aggregating:
- 회귀 문제에서는 여러 모델의 예측값을 평균(average)하여 최종 예측값을 도출
- 분류 문제에서는 여러 모델의 예측 결과를 다수결 투표(majority voting)방식으로 결합하여 최종 예측값을 도출
- Weighted voting : 여러 개의 모델이 예측한 결과를 결합할 때, 각 모델의 중요도나 신뢰도에 따라 가중치를 부여하는 방식
- Bootstrap : 표본에서 추가적으로 표본을 복원 추출하고 각 표본에 대한 통계량을 다시 계산하는 것
- 배깅은 특히 모델의 분산(Variance)를 줄이고 과적합(overfitting)을 방지하는 데 유리하다.
- 위 사진을 보면 입력 데이터를 부트스트랩 샘플을 이용하고, 같은 모델로 학습 시켯더니 하나는 사과, 두개의 모델은 포도가 나왔고 결합(Aggregating)하여 즉, 다수결 투표방식으로 결합하여 최종적으로 포도가 답이 된다.
- 대표적인 모델: 랜덤 포레스트(Random Forest)
- Stacking
- 스태킹(Stacking)은 여러 개의 머신러닝 모델을 결합하여 예측 성능을 향상시키는 앙상블 기법 중 하나이다.
- 기본 모델들의 예측 결과를 입력으로 사용하는 메타 모델(meta-model)(최종 모델)을 학습시킨다.
- 분산(Variance)를 줄여준다.
- Bagging과는 다르게 부트스트랩 샘플링을 하지않은 same data를 입력데이터로 하며 각기 다른 알고리즘 모델을 사용한다.
- Boosting
- Boosting은 여러 개의 약한 학습기(weak learner)를 순차적으로 학습-예측하면서 잘못 예측한 데이터에 가중치를 부여해 오류를 개선해나가며 학습하는 방식이다.
- 초기 데이터를 복원 샘플링을 통해 얻은 후, 모델을 통해 예측한 결과를 기반으로 데이터를 조정한다. 이때 모델이 잘못 예측한 데이터에 대해서는 더 큰 가중치를 부여하여 다시 모델에 학습시킨다. 이 과정을 반복하여 모델은 참값에 더 가까운 예측을 하게 되어 편향(bias)을 줄여준다.
- 대표적인 모델:
- AdaBoost
- Gradient Boosting
- XGBoost
- LightGBM
'ML' 카테고리의 다른 글
[Boosting] Light GBM (0) | 2024.07.24 |
---|---|
랜덤 포레스트(Random Forest) (0) | 2024.06.18 |
로지스틱 회귀 (Logistic Regression) (0) | 2024.06.01 |
의사 결정 나무 (Decision Tree) (1) | 2024.05.30 |