AI/ML
[ML] 앙상블 학습(Ensemble Learning)
hyunjoo
2025. 3. 27. 04:07
앞서 살펴본 의사결정트리는 직관적이고 해석이 쉬운 모델로, 분류와 회귀 문제 모두에 사용된다.
하지만, 트리의 깊이가 깊어지면 과적합 위험이 높아지고, 단일 트리로는 복잡한 데이터 패턴을 충분히 설명하지 못하는 경우도 있다. 이러한 단점을 보완하고 성능을 향상시키기 위해 사용되는 것이 바로 앙상블 학습(Ensemble Learning)이다.
특히, 의사결정트리를 기반으로 여러 개의 트리를 조합하는 배깅(Bagging)과 부스팅(Boosting) 방식은 널리 사용되는 대표적인 기법입니다. 다음에서는 이 두 방식의 개념과 차이, 대표 알고리즘들에 대해 알아보자!
앙상블 학습(Ensemble Learning)이란?
여러 개의 약한 학습기(Weak Learner)를 결합하여 강한 모델(Strong Learner)을 만드는 기법이다. ' 하나하나의 약한 모델은 정확도가 낮더라도, 서로 보완하게 하면 더 좋은 성능을 낼 수 있다.' 라는 의미를 갖고 있고, 의사결정트리는 단독으로는 과적합되기 쉽지만, 앙상블로 결합하면 정확도와 일반화 성능이 향상되는 장점이 있다.
배깅(Bagging)과 부스팅(Boosting)
항목 | 배깅(Bagging) | 부스팅(Boosting) |
학습 방식 | 병렬 학습 (독립적인 모델 여러 개 학습) | 순차 학습 (이전 모델의 오차 보완하며 학습) |
목적 | 분산(Variance) 감소 | 편향(Bias) 감소 + 분산도 감소 |
예측 방식 | 결과 평균 or 다수결 | 가중합 or 점진적 조정 |
과적합 경향 | 상대적으로 낮음 | 과적합 가능성 있음 (하지만 튜닝으로 제어 가능) |
대표 알고리즘 | Random Forest | AdaBoost, Gradient Boosting, XGBoost, LightGBM |
1) 배깅(Bagging, Bootstrap Aggregating)
- 동일한 모델(보통 의사결정트리)을 여러 개 학습시키고 이들의 예측을 결합하는 방식
- 전체 데이터에서 중복을 허용한 무작위 샘플링(Bootstrap)을 여러 번 수행하여 여러 개의 훈련 데이터를 생성함
- 각 샘플로 독립적인 모델을 학습시킨 후,
- 회귀 문제에서는 평균값을,
- 분류 문제에서는 다수결 투표 방식으로 결과를 통합
- Bagging은 모델의 분산(Variance)을 줄이는 데 효과적임
- 의사결정트리는 분산이 크고 작은 변화에 민감하므로, 여러 개의 모델을 조합함으로써 예측을 더 안정적으로 만들 수 있음
대표 알고리즘 :
알고리즘 | 특징 |
Random Forest | Bagging 기법에 피처 무작위 선택(feature sampling)까지 추가한 모델 각 트리마다 데이터 샘플 + 피처 서브셋이 다르기 때문에 모델 간 다양성(diversity)이 높아지고, 성능이 향상됨 |
2) 부스팅(Boosting)
- Boosting은 모델이 서로 의존적이고 순차적으로 학습시키는 방식으로, 각 단계에서 이전 모델의 오류(예측 오차)를 줄이는 방향으로 다음 모델을 학습
- 처음에는 간단한 모델(약한 학습기)을 학습시키고, 그 모델이 잘못 예측한 샘플들에 더 많은 가중치를 두어 다음 모델이 학습하게 됨
- 이렇게 학습한 모델들을 가중치를 부여하여 결합하면 하나의 강력한 예측 모델이 됨
- Boosting은 주로 편향(Bias)을 줄이는 데 효과적임
대표 알고리즘
알고리즘 | 특징 |
AdaBoost | 간단한 부스팅 기법. 오차가 큰 샘플에 가중치를 부여하여 다음 모델 학습에 반영 |
Gradient Boosting | 잔차(오차)를 줄이는 방향으로 반복적으로 트리를 추가하여 성능 향상 |
XGBoost | Gradient Boosting 개선형. 정규화 항 추가, 빠른 학습 속도, 병렬 처리 가능 |
LightGBM | 대용량 데이터를 효율적으로 처리. 리프 중심 트리 성장 방식 사용 |
CatBoost | 범주형 변수 자동 인코딩 기능이 탁월. 전처리 비용이 적고 성능 우수 |
편향과 분산을 고려하는 것은 어떻게 다를까?
머신러닝 모델을 개발할 때, 성능에 영향을 주는 핵심 개념 중 하나는 편향(Bias)과 분산(Variance)이다.
이 두 가지는 예측 정확도와 일반화 성능에 연결되어 있으며, 서로 트레이드오프(trade-off) 관계를 가진다.
따라서 모델을 선택하고 튜닝할 때, 어떤 모델이 편향을 줄이는 데 초점을 두는지, 혹은 분산을 줄이는 데 유리한지를 이해하고 데이터에 형태에 따라 모델을 선택하는 것이 중요하다.
Ⅰ. 통계학(Statistics) 관점
모집단의 특성을 잘 추정하기 위해, 추정량(Estimator)의 정확도와 안정성을 평가
편향(Bias)
- 추정량의 평균이 실제 모수(Parameter)에서 얼마나 떨어져 있는가
요소 | 의미 |
![]() |
표본에서 계산한 추정값 (예: 평균, 분산) |
![]() |
모집단의 실제 값 (진짜 평균 등) |
![]() |
추정량의 기대값 (샘플 여러 번 뽑았을 때 평균적인 추정치) |
- 편향이 0이면 → 불편 추정량(unbiased estimator)( 여기서 불편이란, '편의가 없다' 혹은 '편향되어 있지 않다'라는 뜻으로 쉽게말해 취우침이 없다는 뜻)
- 편향이 클수록 → 단순히 자주 틀린다는 뜻이 아니라, 항상 같은 방향으로 계속해서 틀린다
분산(Variance)
- 추정량이 얼마나 퍼져 있는가
- 표본을 여러 번 추출했을 때, 추정값들이 들쑥날쑥하면 → 분산이 큼
항목 | 편향 | 분산 |
의미 | 평균적으로 틀림 | 추정치가 불안정함 |
예시 | 샘플 평균이 실제 평균보다 항상 낮게 나옴 | 샘플에 따라 평균이 크게 달라짐 |
Ⅱ. 머신러닝(Machine Learning) 관점
모델의 예측 오류를 분석하고, 일반화 성능을 높이기 위한 평가 지표
편향(Bias)
- 모델이 너무 단순해서 데이터의 패턴을 잘 못 잡고 생기는 오류
요소 | 의미 |
f^(x)\hat{f}(x) | 모델이 예측한 값 |
f(x)f(x) | 실제 정답 함수 (알 수 없지만 존재한다고 가정) |
E[f^(x)]\mathbb{E}[\hat{f}(x)] | 모델이 평균적으로 어떤 예측을 하는지 |
- 항상 같은 방식으로 틀리는 모델 → 편향이 큰 모델
분산(Variance)
- 데이터가 바뀔 때 모델의 예측이 얼마나 흔들리는가
- 예: 훈련 데이터를 조금만 바꿨는데도 예측이 확 바뀐다면 → 분산이 큼
전체 예측 오차 분해식
왜 예측 오차를 편향, 분산, 노이즈로 나눠서 확인할까?? 모델이 왜 틀리는지 원인을 구첵적으로 파악하기 위해서!
- 단순히 “예측이 틀렸다”로 끝나는 게 아니라,틀린 이유가 ‘모델 구조의 단순함 때문인지’,‘데이터에 너무 민감해서 그런지’,
‘애초에 예측이 어려운 데이터인지’를 구분해서 확인할 수 있다. - 이 식은 결국 모델이 왜 틀리는지를 수학적으로 설명해주는 도구. 편향과 분산은 모델 설계와 튜닝으로 줄일 수 있는 오차지만,노이즈는 줄일 수 없는 오차(irreducible error)이기 때문에 우리는 bias와 Variance 사이에서 균형을 맞추는 것에 초점을 둔다.
상황 | 해석 | 대응 |
예측이 전반적으로 많이 틀림 (Bias↑) | 모델이 너무 단순함 | 더 복잡한 모델 사용 (ex. 비선형, 다항식, 딥러닝) |
예측이 들쑥날쑥 (Variance↑) | 모델이 너무 민감함 | 모델 단순화, 규제 추가, 앙상블 사용 |
아무리 해도 오차가 남음 (Noise σ²) | 데이터에 예측 불가능한 요인 있음 | 모델 변경이 아닌 데이터 품질 향상 고려 |
통계학 관점 vs 머신러닝 관점 정리
항목 | 통계학 관점 | 머신러닝 관점 |
대상 | 추정량(Estimator) | 예측 모델(Predictive model) |
편향 | 기대값과 모수의 차이 | 평균 예측과 실제값의 차이 |
분산 | 추정량의 퍼짐 정도 | 예측 결과의 민감도 |
목적 | 좋은 추정값을 얻기 위한 평가 기준 | 일반화 성능 향상을 위한 오류 분석 |
반응형