데이터 분석/머신러닝, 딥러닝

앙상블 기법

fullfish 2025. 11. 5. 15:27

앙상블 학습 기법

여러 개의 약간 다른 모델을 묶어 하나의 예측을 만드는 기법
서로의 약점을 보완해 일반화 성능(테스트 성능) 높이는 목적


핵심 종류

배깅 = 여러 명이 독립적으로 푼 답을 평균

부스팅 = 한 명이 틀린 걸 다음 사람이 수정

스태킹 = 여러 전문가의 답을 모아서, ‘판단 전문가’(메타모델)가 이들을 조합해 최종 답을 내는 것


배깅(Bagging)

여러 모델을 독립적으로 학습시키고, 그 결과를 평균/투표로 합치자

여러 명이 각각 따로 시험 문제 풀고, 다수결로 답 고르는 느낌

 

하는법

원본 데이터를 중복 허용(bootstrap) 으로 여러 번 샘플링
→ 예: 100개 데이터로 여러 ‘훈련세트’를 뽑음
각각에 같은 모델(예: 결정트리) 을 학습시킴
예측할 땐
회귀 → 평균
분류 → 다수결로 결정

 

특징

과적합(Overfitting)을 줄여줌
분산(Variance)을 낮춤
각 모델은 서로 독립적으로 학습

 

대표 모델

랜덤 포레스트(Random Forest) = 배깅 + 트리

 

서로 다른 부트스트랩 샘플로 같은 모델을 여러 학습예측을 평균/다수결
분산(요동) 낮춤, 과대적합 완화에 유리
: RandomForest(여러 결정트리 + 특성 무작위 선택)


부스팅(Boosting)

이전 모델이 틀린 데이터를 다음 모델이 집중해서 학습하자!

 

하는법

처음엔 단순한 모델을 하나 학습
틀린 데이터에 가중치(weight) 를 더 줌
다음 모델은 그 어려운 샘플 중심으로 다시 학습
이런 식으로 약한 모델(weak learner)을 순차적으로 이어 붙임

 

특징

모델들이 순차적으로 의존 (앞 모델 결과 반영)
편향(Bias)을 낮춤
과적합 위험 있음 (너무 세밀히 맞출 수 있음)

 

대표모델

AdaBoost, Gradient Boosting, XGBoost, LightGBM, CatBoost

 

이전 모델의 실수를 다음 모델이 보완하도록 순차적으로 학습 약한 학습기를
강하게
편향을 줄이는 강함, 튜닝 잘하면 최고 성능
: Gradient Boosting, XGBoost, LightGBM, CatBoost


스태킹(Stacking)

서로 다른 여러 모델의 예측 결과를 또 하나의 모델이 학습하게 하자

 

하는법

여러 모델(예: 로지스틱 회귀, 랜덤포레스트, XGBoost 등)을 각각 학습
각 모델이 예측한 값을 모아서
메타모델(meta model) 이 “어떤 모델의 말을 믿을지” 학습

 

특징

모델 간 다양성이 높을수록 효과 좋음
다른 알고리즘들을 조합해서 더 강력한 모델을 만듦

 

대표 예시

1단계: SVM, Decision Tree, XGBoost
2단계: Logistic Regression (메타모델)


서로 다른 종류의 모델 예측을 메타 모델이 다시 학습해 최종 예측
다양한 모델의 강점을 결합, 세심한 검증이 필요