낭만적(?) 일상/파이썬, 데이터분석

데이터 분석시, 배깅(Bagging)을 하는 이유

Soo♥JJeong 2019. 7. 24. 18:14

나는 회사에서 데이터를 다루고 있지만, 분석에 대해 모르는 내용이 많다. 이번 휴직 기간에 여러 수업들을 들어보면서, 내가 몰랐던 것이 무엇인지, 왜 해야하는지에 대해 알게 되었다.

 

그 대표적인 것이 바로 배깅(Bagging). ADsP시험 준비하면서 알게 된 단어인데, 앙상블 chapter에 있어서 앙상블의 하나의 방법인줄만 알았다. (물론 앙상블의 방법 중 하나인 것은 맞다.)

 

데이터분석 전문가 가이드(무려 988페이지임.)에 나온 내용은 다음과 같다.

 

배깅(bagging)은 bootstrap aggregating의 준말로 원 데이터 집합으로부터 크기가 같은 표본을 단순 임의 복원추출하여 각 표본(이를 붓스트랩 표본이라 함)에 대해 분류기를 생성한 후 그 결과를 앙상블하는 방법이다.

 

 

오우~ ADsP시험 준비할 때는 아무리 봐도 저 말이 무슨말인지 모르겠어서 이해하는 것을 포기하고 키워드 중심으로 외웠다. '복원추출, 분류기, 앙상블 나오면 배깅' 이렇게... (이렇게 쓰는 내 자신이 부끄럽다)

 

 

그러다, 드립력으로 배우는 머신러닝 강의를 통해 bagging의 정의를 엄청 쉽게 알게 되었다.

 

 

분석 시, Y값에 0과1이 있다면 그 비율을 1:1로 맞추는 것.

① 작은 갯수만큼 큰 갯수를 자르거나 ② 큰 갯수만큼 작은 갯수를 늘린다.

 

작은 갯수를 늘리는 방법은 n배를 해주거나, 이전 달 자료를 추가시키는 방법이 있음. 

 

 

 

하지만, 안타깝게도 왜 0과 1의 비율을 맞춰야 하는지 이해하지 못했다. 그러다가 데이터진흥원 수업에서 잠깐 든 사례를 통해 알게 되었다.

 

 

...공장 데이터를 받아보면 불량율이 엄청 작아요. 1%미만이라고 합시다. 하지만 우리는 어떤 값이 들어왔을 때 불량인지 아닌지를 예측해야해요. 만약 공장 데이터를 그냥 학습 시키면 대부분 정상으로 예측될 거예요. 실제로 모든 생산품을 '정상'으로 예측하더라도 99%예측율을 가졌다고 할 수 있을 걸요? 그래서 우리는 불량과 정상인 데이터를 1:1 비율로 맞춰놓고 분석을 해야합니다. ...

 

 

그렇다. 이해가 안될 때는 극단적인 경우를 생각하면 된다. 우리회사 역시 '해지'를 예측하는데, 유지:해지 비율을 보면 유지가 90%이상이다. 해지를 예측하기 위해 유지:해지 데이터의 비율을 1:1로 맞춰놓고(=배깅을 하고) 학습(traning)을 시켜야 제대로 된 해지를 예측할 수 있다.

 

 

 

동일한 내용을 다른 강사분들한테 반복해서 듣다보니, 이해되는 부분이 점점 늘어나는것 같다. 어려운 용어는 제외하고, 내가 이해한대로 블로그에 복습한다.