본문 바로가기
데이터과학

[머신러닝] 앙상블 학습 - 2) Bagging

by sungkee 2021. 6. 23.
반응형

지난 번 포스팅에서 앙상블 학습의 의미와 효과에 대해서 알아보았다. 이어서 이번 포스팅에서는 앙상블 학습 기법 중 한 종류인 Bagging에 대해서 정리하였다. 구체적으로는, 1) Bagging의 정의와 의의, 그리고 2) 모델 결합 방법에 대해서 알아본다. 본 포스팅은 고려대학교 강필성 교수님의 비즈니스 애널리틱스 강의 내용을 요약한 것이며, 해당 강의는 유튜브에서 무료로 시청이 가능하다(링크).

 

아래 링크들은 본 포스팅과 관련된 게시글이므로 같이 보면 이해가 더 쉬울 것이다.

1. [머신러닝] 편향-분산 분해
2. [머신러닝] 편향과 분산의 의미
3. [머신러닝] 앙상블 학습 - 1) 배경

 

 

1. Bagging


1) Bagging (Bootstrap Aggregating) 이란?

Bagging이란, 기존 학습 데이터(Original Data)로부터 랜덤하게 '복원추출'하여 동일한 사이즈의 데이터셋을 여러개 만들어 앙상블을 구성하는 여러 모델을 학습시키는 방법이다. 이러한 복원추출로 만들어진 새로운 데이터셋을 'Bootstrap'이라고 한다. 여기서 학습 모델은 정해진 것이 아니며, 어떠한 지도 학습 알고리즘이든 다 활용될 수 있다. 

 

[그림 1] Bagging & Bootstrap

 

 

2) Bagging의 의의

[1] 학습 관점

[그림 1]의 Bootstrap1을 보면, 복원추출로 인해 x2, x3, x7은 중복되어 들어간 것을 볼 수 있다. 반면에 x1, x4, x5, x9는 아예 포함되어 있지 않다. 이러한 Bootstrap들이 가지는 의미는 무엇일까? 복원추출로 인해 각 Bootstrap들은 기존 데이터와는 다른, 즉 (긍정적으로) 왜곡된 데이터 분포를 갖게 된다. 기존 데이터는 [그림 2]처럼 노이즈(epsilon)의 분포에 의존적인데, 복원추출을 함으로써 각 Bootstrap이 기존의 노이즈와는 조금씩 다른 노이즈 분포를 갖도록 변형을 주는 것이다. 기존 데이터셋만 사용하여 학습했을 때는 하나의 특정한 노이즈에만 종속적인 모델이 만들어질 수 있는 위험이 있다. 그러나 Bagging은 조금씩 분포가 다른 데이터셋을 기반으로 반복적인 학습 및 모델 결합을 통해 이러한 위험을 방지하는 효과를 가진다.

[그림 2] Original Dataset

이전에 배운 편향-분산 분해(링크)에 따르면, 에러함수는 편향과 분산 둘 중 하나를 줄이면 에러를 줄일 수 있다. 즉, 성능을 향상시킬 수 있다. 그 중에서 분산이 높다는 것은 약간의 노이즈 변동에도 예측 결과값이 크게크게 변동한다는 뜻이다. Bagging은 다양한 노이즈 분포를 가진 Bootstrap들을 기반으로 개별 모델을 학습하고 또 결합함으로써 노이즈의 변동으로 인한 영향력을 줄일 수 있는 것이다. 

 

 

[2] 검증 관점

[그림 3]의 예시처럼 각 Bootstrap마다 포함된 데이터와 제외된 데이터가 다 다르다. 이 때, 각 Bootstrap별로 포함되지 않은 데이터들의 집합을 OOB(Out of Bag) 데이터라고 부른다. OOB 데이터는 Bootstrap을 기반으로 학습한 모델의 Validation을 위한 데이터셋으로 사용된다. 충분히 많은 Bootstrap을 활용하면, 주어진 데이터를 모두 한번 이상씩 검증용으로 활용함으로써 k-fold validation 더 높은 일반화 성능을 확보할 수 있다.

 

[그림 3] Out of Bag Data

 

 

3) Bagging 시각화

[그림 4]는 Bagging의 과정을 시각적으로 잘 보여준다. 첫번째 줄의 하늘색, 빨간색, 파란색으로 색칠된 도형들은 각 Bootstrap에 포함된 데이터를 의미하며, 하얀색 도형들은 각 Bootstrap에서 제외된 OOB 데이터를 나타낸다. 각 그래프의 실선은 학습 모델의 분류 경계선을 나타낸다. 개별 모델들의 분류 경계선은 전체 데이터의 관점에서는 정확도가 떨어지지만, 이를 결합(Aggregation)한 모델(왼쪽 하단의 그래프)은 전체 데이터의 분포에 대해서 좀 더 정확한 분류 경계선을 갖는 것을 확인 할 수 있다. 

 

[그림 4] Polikar, R. (2006). Ensemble based systems in decision making. IEEE Circuits and systems magazine, 6 (3), 21-45.

 


 

2. 모델 결합 방법


분류 문제(Classification Problem)을 푸는 경우, 여러개의 Bootstrap으로 학습된 모델들로부터 이들의 추정값(예측값)을 취합하여 더 좋은 예측 성능을 가지도록 하는 방법 3가지에 대해서 알아보자. 

 

1) Majority Voting

Majority Voting은 말그대로 다수결의 원칙을 적용하여 결과를 취합하는 방식이다. [그림 5]는 이를 나타내는 수식이다. 예를 들어, 0과 1 두 개의 클래스를 분류하는 문제를 푼다고 가정해보자. 개별 모델이 총 10개인데 7개의 모델이 어떤 데이터에 대해서 이를 1로 분류하고, 나머지 3개만 0으로 분류했다면 최종적으로는 다수결에 따라서 1을 결과값으로 내놓는 방식이다. 

 

[그림 5] Majority Voting

 

2) Weighted Voting

Weighted Voting도 마찬가지로 분류 문제를 푸는 경우에 활용되는 방식인데, Majority Voting에 가중치를 곱하여 결과를 취합하는 방식이다. 여기서 가중치는 각 Bootstrap으로 학습된 모델의 정확도를 사용한다. 정확도란 학습된 개별 모델에 대하여 각 OOB 데이터를 가지고 검증한 결과값([그림 3]의 Accuracy)을 말한다. 

[그림 6] Weighted Voting

 

3) Stacking

Stacking은 개별 모델들의 분류값(결과값)을 입력으로 받아서 최종 결과값을 출력하는 학습 모델(Meta-Classifier)을 하나 더 만드는 것이다. 

 

[그림 7] Stacking

 

 


 

References

[1] https://www.youtube.com/watch?v=vlkbVgdPXc4&t=501s

 

[2] Polikar, R. (2006). Ensemble based systems in decision making. IEEE Circuits and systems magazine, 6(3), 21-45.

 

Ensemble based systems in decision making

In matters of great importance that have financial, medical, social, or other implications, we often seek a second opinion before making a decision, sometimes a third, and sometimes many more. In doing so, we weigh the individual opinions, and combine them

ieeexplore.ieee.org

 

반응형

댓글