Data Science Fundamentals

앙상블 기법 알아보기: 부스팅, 배깅, 스태킹

jisuleee 2026. 6. 14. 13:59

목차는 아래와 같다.

1. 앙상블 기법 개요
2. 앙상블 기법의 종류
3. 실습

 


1. 앙상블 기법 개요

-

1) 앙상블 기법의 정의

앙상블(Ensemble) 기법은 여러 개의 머신러닝 (Machine Learning, ML) 모델을 결합하여

하나의 최종 예측 결과를 만드는 방법이다.

 

사람들이 중요한 결정을 내릴 때 여러 전문가의 의견을 종합하는 것처럼,

ML에서도 여러 모델의 예측을 조합함으로써 더 안정적이고 신뢰성 있는 결과를 얻을 수 있다. 

 

2) 앙상블 기법의 필요성

근본적으로 앙상블 기법은 단일 모델의 한계를 보완하기 위해 필요하다.

 

단일 모델을 사용할 경우 발생할 수 있는 문제는 아래와 같다.

1. 과적합 (Ovefitting)

모델이 학습 데이터의 패턴뿐 아니라 노이즈까지 학습하여

학습 데이터에서는 높은 성능을 보이지만,

새로운 데이터에서는 성능이 저하되는 문제(일반화 성능 저하 문제, Poor Generalization)가 발생할 수 있다.

 

2. 과소적합(Underfitting)

모델이 데이터의 복잡한 패턴을 충분히 학습하지 못하는 경우가 발생할 수 있다.

이 경우 학습 데이터와 새로운 데이터 모두에서 성능이 낮게 나타난다.

 

 


2. 앙상블 기법의 종류

-

1) 배깅 (Bagging, Bootstrap Aggregating)

머신러닝에서 동일한 알고리즘¹을 여러 개 학습시킨 뒤, 각 모델²의 예측 결과를 평균 또는 다수결로 결합하는 방법이다.

각 모델은 원본 데이터로부터 복원추출³(Bootstrap)된 서로 다른 학습 데이터를 사용한다.

 

대표적인 알고리즘은 Random Forest가 있다.

Random Forest는 배깅(Bagging)을 기반으로 여러 개의 Decision Tree⁴를 학습시킨 후,

각 트리의 예측 결과를 다수결(분류 - 결과가 범주) 또는 평균(회귀 - 결과가 연속적인 숫자) 방식으로 결합하여 최종 결과를 도출한다.


¹알고리즘(Algorithm)은 데이터를 학습하는 방법 또는 규칙을 의미한다. 예를 들어 Decision Tree, Logistic Regression, SVM 등이 알고리즘에 해당한다.

²모델(Model)은 알고리즘이 실제 데이터를 학습하여 만들어진 결과물이다. 같은 Decision Tree 알고리즘을 사용하더라도 학습 데이터가 다르면 서로 다른 모델이 생성될 수 있다.

³복원추출(Bootstrap)은 데이터를 한 번 추출한 후 다시 원래 집합에 넣고 다음 추출을 수행하는 방식으로, 동일한 데이터가 여러 번 선택될 수 있는 추출 방법이다. 주어진 데이터만을 이용해 새로운 데이터를 반복적으로 생성하여 통계량을 추정할 수 있다.

⁴Decision Tree(의사결정나무): 데이터를 여러 조건으로 반복적으로 분할하여 최종 예측 결과를 도출하는 머신러닝 알고리즘이다.

2) 부스팅 (Boosting)

이전 모델이 잘못 예측한 데이터를 다음 모델이 집중적으로 학습하도록 순차적으로 모델을 생성하는 방법

여러 개의 약한 학습기를 결합하여 강한 학습기를 만든다.

 

대표적인 알고리즘으로는 AdaBoost, Gradient Boosting, XGBoost, LightGBM, CatBoost, 등이 있다.

 

AdaBoost (Adaptive Boosting)

이전 모델이 틀린 데이터에 더 높은 가중치(Weight)를 부여하여 다음 모델이 해당 데이터를 집중적으로 학습하도록 만드는 알고리즘이다.

예를 들어, 이전 모델이 학생 A,B 는 맞히고 학생 C,D는 틀렸다면 다음트리는 학생 C,D를 더 중요하게 학습한다.

하지만 이상치가 존재하는 데이터에서는 대부분의 데이터보다 소수의 이상치에 집착하면서 오히려 과적합 발생 가능성이 있다.

 

Gradient Boosting

이전 모델의 오차(Error)를 직접 학습하도록 다음 모델을 만드는 알고리즘이다.

예를 들어 실제 값이 100인데 Tree1이 80을 예측했다면, 다음트리 Tree2는 20이라는 오차를 학습한다.

즉, 이전 모델이 못 맞힌 부분(residual)을 계속 보완하는 방식이다.

결과의 correct/wrong만 보는 AdaBoost와 다르게, 틀림 정도까지 함께 보기 때문에 AdaBoost 보다 성능이 좋다.

 

XGBoost (Extreme Gradient Boosting)

Gradient Boosting을 개선하여 과적합 방지와 학습 속도를 향상시킨 알고리즘이다.구조는 동일하지만, 추가로 정규화, 가지치기, 결측치 자동 처리, 병렬 연산을 지원한다.

 

LightGBM

XGBoost보다 더 빠르고 대용량 처리에 최적화된 알고리즘이다.기존 트리는 모든 잎을 균형 있게 성장시키지만, LightBGM은 가장 성능 향상이 큰 잎만 성장시킨다.그래서 같은 성능을 내더라도 더 적은 노드와 더 적은 메모리를 사용하는 경우가 많다.또한 연속적인 정수로 이루어진 나이 등의 특징을 다룰 때 구간으로 묶어서 처리하기 때문에 메모리 및 계산량이 낮다.

 

CatBoost (Categorical Boosting)

CatBoost는 범주형 변수를 효율적으로 처리하기 위해 개발된 알고리즘이다.

예를 들어, 성별이라는 범주형 변수를 다룰 때 남 → 0, 여 → 1와 같은 전처리를 내부적으로 처리한다.

그를 통해 데이터 누수를 방지하여 보다 안정적인 예측 성능을 제공한다.

3) 스태킹 (Stacking)

여러 종류의 모델을 학습시킨 후, 각 모델의 예측 결과를 다시 새로운 모델의 입력으로 사용하여 최종 예측을 수행하는 방법이다.

일반적으로 Random Forest, XGBoost, LightGBM 등을 Base Model로 사용하고, Logistic Regression이나 Linear Regression을 Meta Model로 사용한다.

bagging과 boosting의 차이 (출처: https://space-cho.tistory.com/14)


3. 실습

-

필요한 라이브러리 및 모듈 임포트
배깅 (랜덤 포레스트) 예시
부스팅 (AdaBoost) 예시
스태킹 (베이스: RandomForest, AdaBoost / Meta: LogisticRegression) 예시
실제 예측결과 시각화

연습 코드 다운로드:

ensemble_comparison.ipynb
0.01MB