배깅(Bagging)과 부스팅(Boosting)
앙상블 학습은 여러 개의 모델을 결합하여 하나의 모델보다 더 나은 성능을 얻는 방법이다. 대표적인 앙상블 기법으로는 배깅(Bagging)과 부스팅(Boosting)이 있다. 두 방법 모두 여러 개의 약한 학습기를 활용하지만, 학습 방식과 성능을 개선하는 방향이 다르다.
배깅(Bagging)
배깅은 여러 약한 모델을 독립적으로 학습한 뒤, 그 예측 결과를 결합하는 방식이다. 각 모델은 서로 영향을 주고받지 않으며, 병렬적으로 학습된다. 이때 데이터는 원본 전체를 그대로 쓰는 것이 아니라, 부트스트랩 샘플링을 사용한다. 부트스트랩 샘플링은 데이터를 중복을 허용하여 여러 번 뽑아 각 모델에 다른 학습 데이터를 만드는 방식이다.
배깅의 핵심 목적은 분산(variance)을 줄이는 것이다. 개별 모델은 데이터에 따라 예측이 흔들릴 수 있는데, 여러 모델의 결과를 결합하면 이러한 변동성이 완화된다. 따라서 배깅은 과적합을 줄이고 예측을 더 안정적으로 만드는 데 효과적이다.
배깅에서는 일반적으로 분류 문제의 경우 다수결 투표를 사용하고, 회귀 문제의 경우 평균값을 사용하여 최종 예측을 만든다. 대표적인 배깅 기반 모델로는 랜덤 포레스트(Random Forest)가 있다.
부스팅(Boosting)
부스팅은 여러 약한 모델을 순차적으로 학습하는 방식이다. 앞에서 학습한 모델의 오류를 다음 모델이 보완하도록 설계되어 있으며, 이전 모델이 잘못 분류한 데이터에 더 큰 가중치를 부여하면서 다음 모델이 그 부분을 더 집중적으로 학습한다.
부스팅의 핵심 목적은 편향(bias)을 줄이는 것이다. 모델이 처음에는 단순하고 부족한 예측을 하더라도, 뒤에 오는 모델들이 그 약점을 계속 보완하면서 전체 성능을 점진적으로 향상시킨다. 즉, 부스팅은 단순히 여러 모델을 합치는 것이 아니라, 각 모델이 이전 모델의 부족한 부분을 메우도록 만들어 예측력을 높이는 방식이다.
부스팅에서는 모델들의 예측을 단순 평균하지 않고, 가중합을 통해 최종 결과를 만든다. 성능이 좋은 모델이나 중요한 예측에는 더 큰 비중이 반영될 수 있다. 대표적인 부스팅 알고리즘으로는 AdaBoost, Gradient Boosting, XGBoost 등이 있다.
배깅과 부스팅의 차이
배깅과 부스팅은 모두 여러 모델을 활용한다는 점에서는 같지만, 학습 구조와 개선 목표가 다르다. 배깅은 여러 모델을 독립적으로 학습시켜 분산을 줄이는 방식이고, 부스팅은 모델을 순차적으로 연결해 편향을 줄이고 성능을 높이는 방식이다.
정리하면 다음과 같다. 배깅은 병렬 학습, 부트스트랩 샘플링, 다수결 또는 평균을 사용하며 분산 감소에 초점을 둔다. 부스팅은 순차적 학습, 오분류 데이터에 대한 가중치 조정, 가중합 결합을 사용하며 편향 감소에 초점을 둔다.