Ch3. 앙상블(Ensemble) 기법
기계학습의 목적은 주어진 과제(데이터)에 대해서 가장 정확한 하나의 모형을 만드는 것입니다. 하지만 앙상블 기법은 목적과는 조금 다른 접근 방식입니다.
- 하나의 모형만 만들지 않고, 여러 개의 모형을 만들고 이를 한 세트로 구성합니다.
- 여러 개의 모형들의 예측값을 합게내서 결과값을 냅니다.
이러한 방법을 Model ensemble이라고 합니다.
앙상블기법은 전문가들이 모여 아이디어를 함께 내는 것이 한 명의 전문가가 해결하는 것보다 결과가 더 좋다는 경험과 비슷하게 시작되었습니다. 하지만 전문가들이 함께 일할 때여도, 전문가는 그룹에서의 생각과 다르게 독자적으로 결정을 내릴 수 있어야 합니다. 앙상블 기법도 마찬가지로 여러가지의 모형이 있어도 각 모형이 독립적으로 결과를 뽑아냅니다. 그 후, 각 모형들의 결과값을 집계내어 예측값을 정하도록 합니다.
- Response 변수가 Categorical 변수 일 때 : 투표 형식으로 각 모형에서 가장 많이 뽑힌 값이 예측 값이 됩니다.
- Response 변수가 Numerical 변수 일 때 : 평균 혹은 중위수를 계산함으로써 중심 경향을 나타내는 값이 예측 값이 됩니다.
다음으로는 앙상블 기법에서 대표적으로 쓰이는 2개의 접근법(Bagging, Boosting)에 대해 다루도록 하겠습니다.
- Boosting
Boosting 기법은 가중치를 이용하여 약한 학습기(Weak learners)를 강한 학습기(Strong learners)로 만드는 과정을 말합니다. Boosting 기법은 독립적인 모델이 만들어질 때마다 이전 모델의 오류를 반영한 후, 다음 모형에는 오분류 된 데이터에 대해 가중치를 주고 모형을 만듭니다. 예를 들자면, 틀린 연습 문제에 대하여 다음 시험때까지 틀린 유형의 연습문제를 더 많이 풀게함으로써(가중치를 올려줌으로써) 오분류되었던 데이터에 대해 정분류를 할 수 있도록 수정을 하는 것입니다.
먼저 Bootstrap이란 용어에 대해 알아보도록 하겠습니다.
Bootstrap이란 예를 들어, '주어진 데이터 중에서 중복을 허용하여 m개를 뽑고 그 m개의 통계값을 구하는 작업' 이 작업을 여러번 반복한다는 것을 의미합니다. 그럼 각 시행 별로 계산된 통계값이 쌓여 분포가 형성이 될 것입니다. Bootsraping은 보통 샘플 수가 적을 때 사용하기도 합니다.
그럼 이를 기계학습에서 어떤 논리 순서로 진행되는지 알아보도록 하겠습니다.
N개의 데이터가 있다고 할 때, 각 개별 데이터가 뽑힐 확률은 1/N입니다.
1/N의 확률로 뽑힌 데이터 셋(Training Set)을 가지고 예측 모형을 만듭니다.
- 만들어진 예측 모형을 평가하고 Error 발생 정도를 판단합니다.
Error, 즉 오분류 판정을 받은 데이터 셋들에 대하여 뽑힐 확률을 올려 준 다음, Random Sampling을 다시 진행합니다.
오분류 판정을 받은 데이터들이 뽑힐 확률의 가중치 올릴 경우 계산식은 다음과 같습니다.
w[i] = w[i] * (1)/(2*e )반대로 뽑힐 확률의 가중치를 내릴 경우 계산식은 다음과 같습니다.
w[i] = w[i]*(1)/(2*(1-e))오분류 판정을 받은 데이터들은 가중치를 더 받음으로써 다음 Random Sampling 때 뽑힐 확률이 더 높아지게 됩니다.
새로 뽑힌 Training Set을 가지고 예측 모형을 만듭니다.
- 오분류를 계산하고 오분류 데이터들의 가중치를 조정하여 다시 모형을 진행합니다.
의도한 모형 갯수에 도달하게 되면 Bootstrap이 끝나게 되고 최종 결과값이 나오게 됩니다.
Boosting은 진행 할 때마다 데이터의 가중치를 달리함으로써 예측 모형에 만들어지는 Training Set의 분포를 변화시키는 것이 그 목적입니다. 주로 오분류가 발생하는 경우에서 흔한 문제는 데이터가 균형이 안맞춰져 있을 때 발생합니다. 예를 들어 병원에서 환자들의 질병 유무를 판단하고자 예측 모형을 만들려고 합니다. 하지만 해당 질병에 걸린 사람들은 질병에 걸리지 않은 사람들보다 절대적으로 적습니다. 이런 경우 데이터의 분포가 균형있지 못하게 됩니다. 결국 기계학습 과정에서 상대적으로 Minor한 질병 환자 데이터가 관심을 가지지 못하게 되고, 그 결과는 예측모형의 오분류로 이어지게 됩니다. 이러한 문제점을 해결하고자 하는 것이 앙상블 기법에서의 Boosting 접근방식입니다.
- Bagging
Bagging 기법은 Boosting에 비해서는 조금은 간단하게 진행됩니다.
각 모형별 복원 추출을 통해 Training Set을 만들고, 예측 모형을 만듭니다.
원하는 갯수만큼의 모형을 만들었으면, 각 모형의 결과값들을 집게 하여 최종 결과물을 냅니다.
- 각 모형 별로 Training Set이 다르기 때문에 예측 모형도 당연히 모형별로 차이가 존재할 것 입니다.
정말 이게 끝입니다. 간단하죠? 정말입니다.