본문 바로가기
📁 AI

[Machine Learning] 앙상블 학습(Ensemble Learning), 배깅(Bagging)과 부스팅(Boosting)

by 박개봄 2020. 4. 4.
728x90

앙상블 학습 (Ensemble Learning)

앙상블(Ensemble)이란 프랑스어로 조화를 의미합니다.

어떤 data값을 예측할 때 하나의 모델을 사용하여 예측하는 것 보다 여러 개의 모델을 조화롭게 사용하여 그 모델들을 결합하여 만들어 내는 것이 앙상블 모델의 기본적인 idea라고 볼 수 있습니다.

 

대중의 지혜(wisdom of crowd)라는 책에서는,

"때로는 전문가의 의견을 따르는 것 보다 무작위로 선택된 많은 사람들의 답변이 더 낫다." 라고 말합니다.

이러한 현상을 기계학습(Machine Learning)에 적용을 한 것이 앙상블 학습(Ensemble Learning)입니다.

앙상블 학습은 여러 개의 결정 트리를 결합하여 하나의 결정 트리보다 더 좋은 성능을 내는 기계학습 기법입니다.

 

예측 모델을 만들 때 사용되는 data가 서로 같은 data를 사용하는지, 혹은 같은 data를 사용하지만 그에 대한 가중치나 data의 값을 바꾸어 사용할 것인지에 따라 배깅과 부스팅으로 나누어집니다.

 

배깅(Bagging)

배깅이란 bootstrap aggregating의 약자로,

부트스트랩(bootstrap)을 통해 여러개의 학습 data 집합을 생성하고,

생성된 학습 data 집합을 학습 알고리즘을 통해 각 모델(분류기 또는 회귀 모델)을 학습시킵니다.

그리고 학습된 모델의 결과물을 집계하여 최종 판정을 내리는 방법입니다.

 

여기서 부트스트랩(bootstrap)이란, 주어진 학습 data 집합에서 data를 꺼내어 보고 다시 넣는 방법인 복원추출(resampling with replacement)을 하여 다수의 학습 데이터 집합을 만들어 내는 기법입니다.

 

배깅(Bagging) 알고리즘 : 랜덤 포리스트(Random Forest) 알고리즘

배깅(Bagging) 알고리즘에는 랜덤 포리스트(Random Forest)라는 알고리즘이 있습니다.

 

랜덤 포리스트 알고리즘이란, 분류기로, 결정 트리(Decision Tree)를 사용하는 배깅 기법입니다.

 

결정트리는 분할 속성을 선택해야하는데,

랜덤 포리스트 알고리즘에서는

분할 속성을 가능한 속성 중에서 (예를 들어 a1, a2, a3, a4, a5) 중 가장 좋은 것을 선택하는 것이 아니라,

무작위로 선택한 것(예를 들어 a2, a4, a5) 중에서 가장 좋은 것(예를 들어 a2)을 선택하도록 합니다.

 

따라서 학습 data를 통해 다양한 형태의 결정 트리모델이 만들어지고,

어떤 입력이 주어지게 되면 그 입력에 대해서 각각의 결정 트리모델에 따른 결과를 결합해서 최종적인 결과를 만들어내도록 하는 것이 랜덤 포리스트 알고리즘입니다.

 

부스팅(Boosting)

부스팅(Boosting)은 배깅과 달리, k개의 예측 모델을 순차적으로 만들어 가는 앙상블 모델을 생성합니다.

배깅은 부트스트랩을 이용하기 때문에 동시에 일어날 수 있는 반면에 부스팅은 순차적으로,

오차에 따라 학습 데이터에 가중치를 조절하거나 값을 변경해가면서 예측 모델을 생성해 나갑니다.

 

대표적인 부스팅 알고리즘에는 AdaBoost, Gradient Boosting, Gradient Boosting을 개선한 XGB(Extreme Gradient Boosting) 가 있습니다.

728x90