앙상블 기법 — 배깅·부스팅·랜덤포레스트

과목: 데이터 분석 (3과목, 9번 주제) ·

키워드: 데이터 유형 · 분석 주제 유형 · 기술통계 · 회귀분석 · 의사결정나무 · 앙상블 · 랜덤포레스트 · 과적합 · 데이터 전처리 · 부트스트랩 · 표본조사

정의: 앙상블(Ensemble)은 여러 개의 모델을 결합하여 하나의 더 강력한 예측 모델을 만드는 기법입니다.

앙상블(Ensemble)은 여러 개의 모델을 결합하여 하나의 더 강력한 예측 모델을 만드는 기법입니다. 단일 모델의 약점을 보완하여 전체적인 예측 성능을 향상시키는 것이 목적입니다. 배깅(Bagging, Bootstrap Aggregating)은 복원추출 방식의 부트스트랩으로 여러 개의 훈련 데이터 세트를 만들고, 각각으로 독립적인 모델을 학습시킨 후 결과를 종합합니다. 분류 문제에서는 다수결 투표(Voting), 회귀 문제에서는 평균을 사용합니다. 각 모델이 독립적으로 병렬 학습되는 것이 특징입니다. 랜덤포레스트(Random Forest)는 배깅을 기반으로 복수의 의사결정나무를 생성하고 예측을 종합하는 대표적인 앙상블 기법입니다. 부스팅(Boosting)은 약한 학습기를 순차적으로 학습시키면서, 이전 모델이 잘못 분류한 데이터에 더 큰 가중치를 부여하여 다음 모델이 이를 더 잘 학습하도록 하는 방법입니다. 배깅과 달리 모델 간에 의존성이 있으며 순차적으로 학습됩니다. 시험에서 "부스팅은 개별 모델에 동일한 가중치를 부여한다"는 보기가 나오면 틀린 것입니다. 가중치를 다르게 부여하여 오분류 데이터에 집중하는 것이 부스팅의 핵심입니다. 또한 "앙상블은 항상 단일 모형보다 정확하다"는 보기도 항상 그런 것은 아니므로 틀립니다. 그래디언트 부스팅(Gradient Boosting)은 이전 모델의 잔차(오차)를 다음 모델이 학습하는 부스팅 기법입니다. XGBoost(eXtreme Gradient Boosting)는 그래디언트 부스팅을 최적화하여 속도와 성능을 개선한 알고리즘으로, 정형 데이터 분류·회귀에서 높은 성능을 보입니다. 과적합 방지를 위한 정규화 옵션도 내장되어 있습니다. LightGBM은 XGBoost보다 학습 속도가 빠르고 메모리 효율이 높은 그래디언트 부스팅 알고리즘으로, 대용량 데이터에 적합합니다. 핵심 요약 & 시험 포인트 앙상블 기법 비교 기법 학습 방식 특징 배깅(Bagging) 병렬 (복원추출) 분산 감소, 과적합 방지 부스팅(Boosting) 순차 (오류 가중치) 편향 감소, 과적합 위험 랜덤포레스트 병렬 + 변수 무작위 선택 배깅 + 변수 임의 선택 스태킹(Stacking) 메타 학습기 결합 여러 모델 예측을 재학습 그래디언트 부스팅 계열 알고리즘 특징 XGBoost 그래디언트 부스팅 최적화, 정규화 내장 LightGBM XGBoost보다 빠르고 메모리 효율 높음, 대용량 적합 시험 포인트: 배깅=병렬·복원추출, 부스팅=순차·오류 가중치. 랜덤포레스트는 OOB(Out-Of-Bag) 샘플(≈36.8%)로 검증 가능. 부스팅 알고리즘 변천 알고리즘 등장 특징 AdaBoost (1996) 오리지널 오분류 데이터에 가중치 증가, 약한 학습기(주로 stump) 결합 GBM (Gradient Boosting Machine) 손실 함수의 경사 방향으로 학습 잔차 학습, 일반화된 부스팅 XGBoost (2014) GBM + 정규화 + 병렬 처리 Kaggle 우승 단골, 정형 데이터 최강 LightGBM (2017) Microsoft, 리프 우선(Leaf-wise) 분할 XGBoost보다 빠름, 대용량 적합 CatBoost (2017) Yandex, 범주형 자동 처리 범주형 변수 인코딩 불필요, Ordered Boosting AdaBoost 핵심 원리 1. 모든 데이터에 동일 가중치로 시작 2. 약한 학습기 학습 → 오분류 데이터의 가중치 증가 3. 다음 학습기는 어려운 데이터에 집중 4. 최종 예측은 학습기들의 가중 투표 CatBoost의 차별점 - 범주형 변수를 타깃 인코딩 + 순서 통계로 자동 처리 - 일반적인 원-핫 인코딩의 차원 폭발 방지 - Ordered Boosting으로 과적합 방지 시험 포인트: AdaBoost = 오분류 가중치 조정. GBM 계열 = 잔차 학습. CatBoost = 범주형 자동 처리. 랜덤 포레스트(Random Forest) 심화 - 배깅 + 변수 무작위 선택을 결합한 의사결정나무 앙상블 - 각 분할마다 전체 변수 중 √p(분류) 또는 p/3(회귀)개만 후보로 사용 → 트리 간 상관성↓, 일반화↑ - OOB(Out-of-Bag) 오차: 부트스트랩 표본에 포함되지 않은 약 36.8% 데이터로 자체 검증 - 변수 중요도(Variable Importance): 평균 불순도 감소(MDI) 또는 OOB 순열중요도 추가 앙상블 기법 - 보팅(Voting): 서로 다른 알고리즘의 예측을 다수결(hard) 또는 확률 평균(soft)으로 결합 - 스태킹(Stacking): 1단계 모델들의 예측을 2단계 메타학습기의 입력으로 사용 - AdaBoost(에이다부스트): 오분류 샘플에 가중치 증가시키며 약한 분류기 반복 학습 - 그래디언트 부스팅(Gradient Boosting): 직전 모델의 잔차(또는 손실 기울기)를 새 트리로 학습 - XGBoost / LightGBM / CatBoost: 그래디언트 부스팅의 고성능 구현체 kNN과 나이브 베이즈 - k-최근접 이웃(kNN): 거리 기반 비모수 분류 — 학습 단계 없음(lazy learning), k는 홀수 권장 - 나이브 베이즈(Naive Bayes): 모든 특성이 조건부 독립이라는 '나이브' 가정 + 베이즈 정리 - 라플라스 스무딩(Laplace Smoothing): 0 확률 문제 회피를 위해 모든 빈도에 +1 자기조직화지도 (SOM) - SOM(Self-Organizing Map): 비지도 신경망 — 고차원 데이터를 저차원 격자에 위상 보존 매핑 - BMU(Best Matching Unit): 입력 벡터와 가장 가까운 가중치를 가진 출력 뉴런 — 학습 시 BMU와 이웃의 가중치를 입력 방향으로 이동 - 활용: 고객 군집화 시각화, 차원축소 부스팅의 학습기 개념 - 약한 학습기(Weak Learner): 무작위보다 약간 더 좋은 성능의 모델 (정확도 50% 초과) - 강한 학습기(Strong Learner): 약한 학습기 여러 개를 결합한 고성능 모델 - 부스팅의 핵심: 약한 학습기들을 순차적으로 결합해 강한 학습기 생성 비용 민감 학습 - Cost-sensitive Learning: 오분류에 따른 비용이 다를 때 적용 - 양성 → 음성 오분류와 음성 → 양성 오분류의 비용이 비대칭일 때 - 의료 진단(놓치면 치명적), 사기 탐지(놓치면 큰 손해)에 필수 Voting 세부 - Hard Voting(다수결 투표): 각 모델의 예측 클래스를 다수결로 결정 — 단순·직관적 - Soft Voting(가중 평균 투표): 각 모델의 클래스 확률을 평균 후 최대 확률 클래스 선택 — 일반적으로 Hard보다 우수 - 전제: 모델들이 잘 보정된 확률을 출력해야 Soft Voting 효과적 Stacking 상세 - Stacking(Stacked Generalization) 절차: 1. 기본 모형(Base Learner) 훈련: 여러 다양한 알고리즘 (RF·SVM·로지스틱 등) 2. 기본 모형 예측값을 새 특성으로 사용 3. 메타 학습기(Meta Learner) 훈련: 보통 로지스틱·간단한 모델 - 누수 방지: 기본 모형 예측은 교차검증 fold에서 생성해 학습-평가 분리 나이브 베이즈(Naive Bayes) 변종 - Gaussian Naive Bayes: 연속형 특성이 정규분포를 따른다고 가정 - 각 클래스별로 평균·분산 추정 → 정규분포 PDF로 우도 계산 - 활용: 연속형 입력의 일반 분류 - Multinomial Naive Bayes: 이산형 카운트(빈도) 데이터에 적합 - 단어 빈도 등 카운트 기반 — 텍스트 분류의 표준 - 활용: 스팸 필터·문서 분류·감성 분석 - Bernoulli Naive Bayes: 이진(0/1) 특성에 적합 - 단어의 등장 여부(유무) — 부재 정보도 활용 - 활용: 짧은 문서·검색어 매칭 - 공통 가정: 모든 특성이 클래스 조건부 독립이라는 강한 가정 (현실엔 거의 안 맞지만 잘 작동) - 라플라스 스무딩: 빈도 0인 단어로 인한 0 확률 회피 OOB Score (Out-of-Bag Score) - OOB(Out-of-Bag) 샘플: 부트스트랩 표본에 포함되지 않은 약 36.8%의 원본 데이터 - 부트스트랩에서 한 샘플이 뽑히지 않을 확률 = (1−1/n)ⁿ ≈ 1/e ≈ 0.368 - OOB Score / OOB Error: 각 트리에서 OOB 샘플로 평가한 오류율의 평균 - 별도 검증 셋 없이도 모델 평가 가능 → 데이터 효율적 활용 - 랜덤 포레스트의 표준 평가 지표 Bagging vs Boosting 비교 구분 Bagging Boosting 학습 병렬 (독립적) 순차적 (이전 오차 보완) 데이터 Bootstrap 표본 가중치 부여 결합 평균/투표 가중 합 편향-분산 분산 감소 위주 편향 감소 위주 대표 Random Forest AdaBoost·GBM·XGBoost·LightGBM 과적합 강건 민감 (조절 필요) Voting Classifier - Hard Voting: 다수결로 클래스 결정 - Soft Voting: 각 모델의 클래스 확률 평균 후 결정 — 일반적으로 더 우수 📝 이 주제 관련 문제 학습 노트의 보강 개념을 직접 문제로 풀어보세요. - OOB오차 — 부트스트랩 표본에 포함되지 않은 약 36.8% 데이터로 자체 검증 - 그래디언트 부스팅 — 직전 모델의 잔차(또는 손실 기울기)를 새 트리로 학습 - k-최근접 이웃 — 거리 기반 비모수 분류 — 학습 단계 없음(lazy learning), k는 홀수 권장 - 라플라스 스무딩 — 0 확률 문제 회피를 위해 모든 빈도에 +1 - 강한 학습기 — 약한 학습기 여러 개를 결합한 고성능 모델 - 부스팅의 핵심 — 약한 학습기들을 순차적으로 결합해 강한 학습기 생성 - Hard Voting — 각 모델의 예측 클래스를 다수결로 결정 — 단순·직관적 - Soft Voting — 각 모델의 클래스 확률을 평균 후 최대 확률 클래스 선택 — 일반적으로 Hard보다 우수 - AdaBoost — 오분류 샘플에 가중치 증가시키며 약한 분류기 반복 학습 - OOB Score / OOB Error — 각 트리에서 OOB 샘플로 평가한 오류율의 평균 페이지 하단 "이 주제 문제 풀기" 버튼으로 전체 문제를 풀 수 있습니다.

핵심 Q&A (7개)

배깅(Bagging) vs 부스팅(Boosting)의 핵심 차이는?
배깅: 병렬 학습, 복원추출, 분산 감소
부스팅: 순차 학습, 이전 오류에 가중치, 편향 감소
랜덤포레스트가 일반 배깅과 다른 점은?
각 노드에서 전체 변수가 아닌 무작위 선택된 변수 집합 사용
→ 트리 간 상관관계↓, 다양성↑, 과적합 방지
OOB(Out-Of-Bag) 샘플이란?
부트스트랩 추출에서 선택되지 않은 약 36.8%(≈e⁻¹)의 데이터
별도 검증 세트 없이도 모델 성능 평가 가능
XGBoost vs LightGBM의 차이는?
XGBoost: 그래디언트 부스팅 최적화, 정규화 내장
LightGBM: XGBoost보다 빠르고 메모리 효율 높음, 대용량 적합
스태킹(Stacking)이란?
여러 모델(기본 학습기)의 예측값을 입력으로 메타 학습기가 최종 예측
"앙상블의 앙상블" 방식
AdaBoost vs GBM의 차이는?
AdaBoost: 오분류 데이터의 가중치를 증가시켜 다음 학습기가 집중
GBM: 손실 함수의 음의 기울기(잔차) 방향으로 새 학습기 추가
둘 다 순차적 부스팅이지만 학습 방식 다름
CatBoost의 핵심 장점은?
범주형 변수를 자동 처리 (타깃 인코딩 + 순서 통계)
원-핫 인코딩 불필요 → 차원 폭발 방지
Ordered Boosting으로 과적합 방지
Yandex 개발

이 주제의 관련 기출 퀴즈 풀기 »