pythonML

[pythonML] 앙상블(ensemble model)이란? | 앙상블의 종류 | 편향 (Bias)과 분산(Variance)

독립성이 강한 ISFP 2024. 8. 27. 18:16
728x90
반응형

앙상블(ensemble)이란?

축구 경기를 준비하는 감독을 생각해 보세요.

감독님은 팀을 구성할 때, 각 선수의 특성과 능력을 고려하여 최적의 선수들로 조합을 만들겠죠!?

 

출처: https://encord.com/blog/what-is-ensemble-learning/

 

예를 들어,

빠른 스피드를 가진 공격수, 강력한 방어력을 가진 수비수, 경기를 조율하고 전략을 이끄는 미드필터, 골을 지키는 데 탁월한 골키퍼 

이 감독님은 각 선수의 장점을 최대한 활용해 팀을 구성하고, 이들이 함께 협력하여 경기에서 승리할 수 있도록 합니다. 

 

각 포지션 선수들은 저마다 다르게 경기에 기여하지만, 이들이 잘 조화되었을 때 팀은 최상의 성과를 내겠죠.

 

앙상블 모델도 이와 비슷하게 작동합니다. 각 머신러닝 모델은 축구팀의 선수들처럼특정한 역할을 맡고 있어요. 각 모델이 가진 강점을 결합함으로써, 하나의 모델이 혼자서 이루지 못할 더 높은 성능과 정확도를 달성할 수 있는 거죠.

 

이렇듯, 앙상블 학습은 개별 모델의 성능을 종합하여, 더 강력하고 신뢰성 있는 예측을 만들어내는 방법입니다.


모델 오류와 앙상블을 통한 개선

모든 머신러닝 모델은 예측 시 일정한 오류를 발생시키며, 이러한 오류는 다음의 세 가지 요소로 분해할 수 있어요.

 

1. 편향 (Bias)

2. 분산(Variance)

3. 환원 불가능한 오류(Irreducible Error)

 

위 세 가지 요소를 이해하는 것이 중요한 이유는 앙상블 모델이 이러한 오류를 줄이기 위해 어떻게 작동하는지를 이해하는 데 중요하기 때문이에요.

 

편향(Bias)

편향은 예측값이 실제값에서 얼마나 벗어나는지를 의미합니다. 높은 편향을 가진 모델은 본질적인 패턴을 제대로 학습하지 못해 계속해서 잘못된 추세를 예측하는데요. 이는 모델이 지나치게 단순해서 중요한 특징을 놓치고 있다는 것을 의미하죠.

 

분산 (Variance)

분산은 동일한 관찰에 대해 모델이 얼마나 일관성 없이 예측하는지 나타냅니다. 분신이 높은 모델은 학습 데이터에 과적합되어 새로운 데이터에 과적합되어 새로운 데이터에 대한 예측 성능이 떨어집니다. 즉, 훈련 데이터에만 지나치게 최적화된 모델은 다른 데이터셋에 대해 성능이 불안정하게 됩니다. 

 

위 두 오류 요소를 이해하기 위해 아래와 같은 다트보드를 생각해 볼 수 있는데요. 편향과 분산의 조합은 모델의 성능을 시각적으로 이해하는 데 도움이 됩니다.

 

- 편향이 낮고 분산이 낮은 경우: 예측값이 실제값 근처에 몰려 있습니다.

- 편향이 낮고 분산이 높은 경우: 예측값이 실제값 주위에 넓게 퍼져 있습니다.

- 편향이 높고 분산이 낮은 경우: 예측값이 실제값에서 멀리 떨어져 있지만 일관되게 나타납니다.

- 편항이 높고 분산이 높은 경우: 예측값이 실제값에서 멀리 떨어져 있으며 불규칙하게 분포됩니다.

 

일반적으로 모델의 복잡성을 높이면 편향은 줄어들어 예측 성능이 좋아지는데요. 그러나 복잡성이 커지면 모델이 학습 데이터에 과적합되어 분산이 커지게 되고, 이는 새로운 데이터에 대해 모델이 불안정하게 작동하게 만듭니다.


편향과 분산을 평가하는 간접적인 방법

1. 교차 검증 (Cross-validation): 교차 검증을 통해 모델의 성능을 여러 데이터 분할에 걸쳐 평가함으로써, 분산을 간접적으로 측정할 수 있습니다. 높은 분산을 가진 모델은 교차 검증의 각 폴드에서 일관되지 않은 성능을 보입니다.

2. 훈련 데이터와 테스트 데이터의 성능 비교:
   - 훈련 데이터에서 높은 성능, 테스트 데이터에서 낮은 성능: 고분산 모델(과적합)을 나타냅니다.
   - 훈련 데이터와 테스트 데이터에서 모두 낮은 성능: 고편향 모델(과소적합)을 나타냅니다.

3. 학습 곡선 (Learning curves):
   - 학습 곡선은 모델의 성능이 훈련 데이터의 크기에 따라 어떻게 변하는지 보여줍니다. 이를 통해 편향과 분산 문제를 식별할 수 있습니다.
   - 편향이 문제인 경우: 훈련 데이터 크기에 관계없이 성능이 낮음.
   - 분산이 문제인 경우: 훈련 데이터의 크기가 작을 때 성능이 좋지만, 데이터가 증가함에 따라 성능이 떨어짐.

모델 평가 지표와 편향/분산의 관계
일반적인 모델 평가 지표(예: 정확도, F1 스코어, RMSE 등)는 모델의 예측 성능을 평가하는 데 사용되지만, 이들의 지표는 편향과 분산을 직접 측정하지 않습니다. 대신, 이러한 지표들을 훈련 세트와 테스트 세트에서 비교하여 편향과 분산의 문제를 추론할 수 있습니다.


앙상블의 종류

1. 배깅 (Bagging)

 

[pythonML] 배깅(Bagging)이란? | 배깅(Bagging)의 동작 원리 | 배깅을 사용한 모델 학습 코드

배깅(Bagging)이란?배깅은 동일한 알고리즘을 사용하여 여러 개의 개별 모델을 구성하는 방법입니다. 각 학습자는 원본 데이터에서 랜덤으로 샘플링(행(row)을 랜덤으로 선택)된 서브셋을 사용

resultofeffort.tistory.com

 

  • 개념: 배깅은 "Bootstrap Aggregating"의 약자로, 원본 데이터셋에서 여러 개의 부트스트랩 샘플(중복을 허용한 랜덤 샘플)을 생성하고, 각 샘플에 대해 동일한 알고리즘의 여러 모델을 학습시켜 예측 결과를 결합하는 방법입니다.
  • 대표적인 예: 랜덤 포레스트(Random Forest)는 배깅의 대표적인 사례로, 여러 개의 결정 트리를 학습시키고 그 예측 결과를 평균(회귀) 또는 다수결 투표(분류)로 결합합니다.
  • 특징: 모델의 분산을 줄이는 데 효과적이며, 과적합을 방지하는 데 유리합니다.

2. 스태킹 (Stacking)

 

[pythonML] 스태킹 앙상블(Stacking ensemble)이란? | 스태킹(Stacking)의 작동 방식 | StackingClassifier 함수 적

스태킹에 대해 설명하기 전에, 이를 이해하기 위한 두 가지 중요한 개념을 먼저 알아보겠습니다: 기본 학습자와 메타 학습자입니다.기본 학습자(Base Learner)기본 학습자는 앙상블 모델의 첫 번

resultofeffort.tistory.com

 

  • 개념: 스태킹은 서로 다른 유형의 여러 모델을 학습시킨 후, 이들의 예측 결과를 기반으로 메타 모델을 학습시키는 방법입니다. 메타 모델은 기본 모델들의 예측값을 입력으로 받아 최종 예측을 만듭니다.
  • 특징: 다양한 모델의 장점을 결합하여 더 높은 성능을 얻을 수 있지만, 구조가 복잡하고 과적합의 위험이 있을 수 있습니다.
  • 유사 기법: 블렌딩(Blending)은 스태킹과 유사하지만, 홀드아웃 데이터를 사용하는 등의 차이로 다르게 구현될 수 있습니다.

3. 보팅 (Voting)

  • 개념: 보팅은 여러 모델의 예측 결과를 결합하는 방법으로, 각 모델의 예측을 다수결 투표 또는 평균으로 결합하여 최종 예측을 만듭니다.
    • 하드 보팅(Hard Voting): 각 모델의 분류 결과(예: 0 또는 1) 중 가장 많이 나온 클래스를 선택합니다.
    • 소프트 보팅(Soft Voting): 각 모델의 클래스 확률값을 평균 내어 가장 높은 확률을 가진 클래스를 선택합니다.
  • 특징: 단순하지만, 다양한 모델을 결합해 성능을 높일 수 있습니다. 기본적으로 동일한 데이터에 대해 여러 모델을 학습시키며, 결과를 결합합니다.

4. 부스팅 (Boosting)

  • 개념: 부스팅은 약한 학습기(weak learners)를 순차적으로 학습시켜 강한 학습기(strong learner)를 만드는 기법입니다. 이전 모델이 틀린 예측에 더 높은 가중치를 부여하여 다음 모델이 이를 개선하도록 유도합니다.
  • 대표적인 예: AdaBoost, Gradient Boosting, XGBoost, LightGBM 등이 있습니다.
  • 특징: 성능이 우수하지만, 과적합의 위험이 있고, 학습 속도가 느릴 수 있습니다.

결론

앙상블 기법은 단일 모델의 한계를 극복하고 더 강력하고 신뢰성 있는 예측을 가능하게 하는 중요한 도구입니다. 배깅, 스태킹, 보팅, 부스팅과 같은 다양한 앙상블 기법들은 각각의 특성과 장점을 가지고 있어, 문제의 특성에 맞게 적절히 활용될 수 있습니다.

편향과 분산의 균형을 맞추고 모델의 일반화 성능을 극대화하기 위해 앙상블을 사용하는 것은 특히 유용합니다. 머신러닝 모델이 직면하는 오류 요소를 이해하고, 이러한 오류를 줄이기 위해 앙상블 기법을 적용하면 더욱 정확하고 신뢰할 수 있는 결과를 얻을 수 있습니다.

결국, 앙상블 기법은 여러 모델의 예측을 결합하여 단일 모델보다 더 나은 성능을 제공하며, 다양한 문제에 대해 보다 포괄적이고 효과적인 솔루션을 제공합니다. 이처럼 앙상블은 머신러닝에서 중요한 역할을 하며, 복잡한 문제를 해결하는 데 매우 강력한 도구로 자리 잡고 있습니다.

728x90
반응형