배깅(Bagging)

•
2026년 11월 08일 발행•2026년 11월 08일 수정
요약

복원 추출한 여러 부트스트랩 표본으로 모델을 각각 학습하고 예측을 결합해 분산을 줄이는 앙상블 기법

초급
의사결정나무와 편향-분산 개념에 대한 기본 이해가 필요하며, 부트스트랩 표본 추출과 예측 결합 방식을 알아야 한다.

#개념

배깅(Bagging)은 부트스트랩 집계(Bootstrap Aggregating)의 줄임말로, 학습 데이터에서 복원 추출한 여러 표본으로 같은 종류의 모델을 각각 학습한 뒤 예측을 결합하는 앙상블 학습(Ensemble Learning) 기법이다. Leo Breiman이 1996년 논문 "Bagging Predictors"에서 제안했으며, 개별 모델의 분산을 줄여 예측을 안정화하는 것이 주된 목적이다.
의사결정나무처럼 학습 데이터가 조금만 바뀌어도 결과가 크게 달라지는 모델은 분산이 커서 과대적합(Overfitting)되기 쉽다. 배깅은 서로 다른 데이터 표본으로 학습된 여러 모델의 예측을 평균함으로써 개별 모델의 우연한 오차가 서로 상쇄되도록 한다. 단순한 아이디어지만 랜덤 포레스트의 토대가 되었고, 지금도 정형 데이터 모델링에서 널리 쓰인다.
배깅의 학습 절차
  • 부트스트랩 표본 추출: 크기가 $n$인 학습 데이터에서 $n$개를 복원 추출해 부트스트랩 표본(Bootstrap Sample)을 만든다. 이를 $B$번 반복해 $B$개의 표본을 얻는다.
  • 기본 학습기 학습: 각 부트스트랩 표본으로 같은 알고리즘의 기본 학습기(Base Learner)를 독립적으로 학습한다. 주로 가지치기하지 않은 깊은 의사결정나무를 쓴다.
  • 예측 결합: 회귀에서는 $B$개 예측의 평균을, 분류에서는 다수결 투표(Majority Voting)나 클래스 확률의 평균을 최종 예측으로 사용한다.
복원 추출이므로 하나의 부트스트랩 표본에는 같은 관측치가 여러 번 들어가고 일부 관측치는 빠진다. 특정 관측치가 한 번도 뽑히지 않을 확률은 $(1 - 1/n)^n$이며, $n$이 커지면 $e^{-1} \approx 0.368$에 가까워진다. 따라서 각 부트스트랩 표본에는 원본 데이터의 약 63.2%에 해당하는 고유 관측치가 포함된다.
배깅이 분산을 줄이는 원리는 평균의 분산으로 설명할 수 있다. 분산이 $\sigma^2$인 예측기 $B$개의 평균을 내면, 예측기들이 서로 독립일 때 분산은 $\sigma^2/B$로 줄어든다. 실제로는 같은 데이터에서 나온 표본이라 예측기 간 상관이 존재하며, 쌍별 상관계수가 $\rho$이면 평균의 분산은 $\rho\sigma^2 + \frac{1-\rho}{B}\sigma^2$가 된다.
이 식에서 $B$를 늘리면 두 번째 항은 사라지지만 첫 번째 항 $\rho\sigma^2$는 남는다. 즉 배깅의 효과는 기본 학습기 간 상관이 낮을수록 커지며, 모델 수를 계속 늘려도 일정 수준 이상은 개선되지 않는다. 반면 배깅은 개별 학습기의 편향은 거의 바꾸지 않으므로 편향이 큰 단순 모델에는 효과가 작다.
Breiman은 배깅이 효과적인 조건으로 학습기의 불안정성(Instability)을 꼽았다. 학습 데이터의 작은 변화에 예측이 크게 바뀌는 불안정한 학습기에서는 배깅이 정확도를 크게 높이지만, 안정적인 학습기에서는 효과가 거의 없거나 오히려 성능이 약간 떨어질 수 있다. 학습기 유형별 차이는 다음과 같다.
학습기 안정성에 따른 배깅 효과
  • 불안정한 학습기: 분류·회귀 나무(CART), 신경망, 선형 회귀의 변수 부분집합 선택 등이 해당한다. 배깅으로 분산이 크게 줄어 성능 향상 폭이 크다.
  • 안정적인 학습기: k-최근접 이웃(k-Nearest Neighbors), 강한 정칙화가 적용된 선형 모델 등이 해당한다. 부트스트랩 표본 간 예측 차이가 작아 결합 효과가 미미하다.
각 기본 학습기는 학습에 쓰이지 않은 약 36.8%의 관측치를 갖는데, 이를 OOB 표본(Out-of-Bag Sample)이라 한다. 각 관측치에 대해 그 관측치를 학습에 쓰지 않은 학습기들만으로 예측을 만들고 실젯값과 비교하면 일반화 오차를 추정할 수 있다. 이 OOB 추정은 별도의 검증 데이터나 교차 검증 없이 성능을 가늠할 수 있다는 장점이 있다.
랜덤 포레스트(Random Forest)는 배깅을 의사결정나무에 적용하면서 각 분할마다 무작위로 고른 일부 특성만 후보로 사용하는 방식을 더한 모델이다. 특성 무작위화는 나무들이 같은 강한 특성에만 의존하는 것을 막아 나무 간 상관 $\rho$를 낮추고, 그 결과 배깅만 사용할 때보다 분산이 더 줄어든다. 랜덤 포레스트 역시 Breiman이 2001년에 제안했다.
배깅은 표본과 특성을 어떻게 추출하는지에 따라 여러 변형이 있다. scikit-learn의 배깅 메타 추정기는 아래 변형들을 매개변수 조합으로 모두 지원한다.
표본·특성 추출 방식에 따른 변형
  • 페이스팅(Pasting): 표본을 비복원 추출한 부분집합으로 기본 학습기를 학습한다. 데이터가 매우 커서 일부만으로도 충분할 때 유용하다.
  • 배깅(Bagging): 표본을 복원 추출한다. 원래 의미의 부트스트랩 집계다.
  • 랜덤 서브스페이스(Random Subspaces): 표본은 그대로 두고 특성의 무작위 부분집합으로 학습한다. 고차원 데이터에서 학습기 간 다양성을 높인다.
  • 랜덤 패치(Random Patches): 표본과 특성을 모두 무작위로 추출한다. Louppe와 Geurts(2012)가 제안했으며 학습기마다 데이터 일부만 사용하므로 메모리 사용량도 줄어든다.
배깅의 기본 학습기들은 서로 독립적으로 학습되므로 병렬화가 쉽다. CPU 코어나 여러 머신에 학습기를 나누어 동시에 학습할 수 있고, 예측 단계도 병렬로 처리할 수 있다. 이는 이전 학습기의 오차를 이어받아 순차적으로 학습해야 하는 부스팅과 구별되는 실무상 장점이다.
다른 앙상블 기법과의 비교
  • 배깅: 독립적으로 학습한 학습기를 균등하게 결합해 주로 분산을 줄인다. 병렬 학습이 가능하고 과대적합에 비교적 강건하다.
  • 부스팅(Boosting): 이전 학습기가 틀린 데이터에 집중하도록 학습기를 순차적으로 추가해 주로 편향을 줄인다. 정확도가 높지만 학습률과 반복 횟수를 잘못 정하면 과대적합될 수 있다.
  • 스태킹(Stacking): 서로 다른 종류의 학습기 예측을 입력으로 받아 메타 학습기가 최종 예측을 학습한다. 이질적인 모델의 장점을 결합하지만 구조가 복잡하고 데이터 누수에 주의해야 한다.
scikit-learn은 BaggingClassifier와 BaggingRegressor를 제공한다. estimator로 기본 학습기를 지정하고(지정하지 않으면 의사결정나무), n_estimators로 학습기 수, max_samples와 max_features로 표본·특성 추출 규모를 정한다. bootstrap과 bootstrap_features로 복원 추출 여부를, oob_score로 OOB 추정 사용 여부를, n_jobs로 병렬 작업 수를 설정한다.
배깅의 단점은 모델 수에 비례해 학습·추론 비용과 저장 공간이 늘어난다는 점이다. 또한 여러 모델의 결합이므로 단일 의사결정나무에 비해 해석이 어렵다. 실무에서는 학습기 수를 늘려 가며 OOB 오차가 수렴하는 지점을 찾고, 추론 지연 시간이 중요한 서비스에서는 학습기 수와 나무 깊이를 함께 제한한다.
배깅의 아이디어는 딥러닝에서도 형태를 바꿔 쓰인다. 서로 다른 초기화나 데이터 표본으로 학습한 신경망의 예측을 평균하는 딥 앙상블은 정확도와 불확실성 추정을 함께 개선한다. 드롭아웃은 하나의 네트워크 안에서 가중치를 공유하는 많은 하위 네트워크를 근사적으로 결합하는 방법으로, 배깅과 연결 지어 해석되기도 한다.

#관련 용어

부트스트랩
원본 데이터에서 같은 크기의 표본을 복원 추출해 통계량의 분포를 추정하는 재표본 방법
OOB 표본(Out-of-Bag)
특정 부트스트랩 표본에 한 번도 뽑히지 않아 해당 학습기의 검증에 쓸 수 있는 관측치
앙상블 학습
여러 모델의 예측을 결합해 단일 모델보다 나은 성능을 얻는 학습 방법
랜덤 포레스트
배깅에 분할별 특성 무작위 선택을 더한 의사결정나무 앙상블 모델
부스팅
약한 학습기를 순차적으로 추가해 이전 오차를 보완하는 앙상블 기법

#직무 연관도

DA
Data Analyst
보통
정형 데이터 예측 모델을 안정적으로 구축하고 단일 모델과 성능을 비교하는 데 활용
DS
Data Scientist
높음
불안정한 모델의 분산을 줄이고 OOB 추정으로 일반화 성능을 평가하는 데 활용
DE
Data Engineer
보통
기본 학습기를 병렬로 학습·추론하도록 파이프라인을 구성하고 모델 크기와 지연 시간을 관리

#사용 사례

금융의료제조전자상거래통신
개요
배깅은 정형 데이터에서 안정적인 예측이 필요한 산업에 널리 쓰인다. 금융에서는 신용 평가와 이상 거래 탐지, 의료에서는 진단 보조와 위험도 예측, 제조에서는 불량 예측에 활용된다. 전자상거래와 통신에서는 이탈 예측이나 수요 예측 모델의 분산을 줄이는 데 사용되며, 대부분 랜덤 포레스트 형태로 적용된다.
사례
금융사의 신용 위험 평가에서 고객 거래·상환 이력으로 의사결정나무 수백 개를 배깅해 부도 확률을 예측하고, OOB 오차로 별도 검증 세트 없이 모델 성능을 점검

#참고 자료

#추천 포스트

© 2024 diki All rights reserved.