본문 바로가기

Machine Learning/Business Analytics 2

4-3 : Ensemble Learning - Bagging

자료 출처

 

Sampling without Replacement

 

앙상블의 key는 다양성인데 data의 다양성과 model의 다양성 2가지가 있다. Bagging은 전자를 목적으로 한다.

 

k-fold data split

 

  • 데이터를 k개의 fold로 나눈뒤 k개의 개별적인 모델을 각각 (k-1)개의 fold로 학습시킨다.
  • 이론적으로는 개별 모델들이 독립적이라면 앙상블의 에러는 개별 모델들 보다 k배 만큼 작을 것이다.
  • 하지만 어떤 $f_i$ 모델과 $f_j$ 모델을 고르더라도 무조건 (k-2) 개의 fold는 공통이다. 따라서 독립적이라고 보기 어렵다.

최종 output은 다음과 같다.

 

k-fold 방식으로 학습하는 방법론은 잘 쓰이지 않는 사장된 방법론 이라고 한다.

 

Bootstrap Aggregating : Bagging

 

Main idea

  • 앙상블의 각 구성원은 다른 학습 데이터셋으로부터 구성된다.
  • 각 데이터셋은 총 N개의 데이터 example에서 샘플링하여 N개의 항목을 균일하게 무작위로 선택하여 생성된다. -> Sampling with Replacement -> 이는 데이터가 갖는 분포를 좋은 방향으로 왜곡한다.
  • 각 데이터셋 샘플을 bootstrap이라 한다.

 

하나의 sample이 bootstrap에 포함되지 않을 확률

  • 즉 2/3는 선택되고 1/3은 선택되지 않는데 후자를 Out of Bag(OOB)라고 부른다. 보통 OOB 데이터셋을 검증 데이터셋으로 활용한다.
  • Bagging은 낮은 편향과 높은 분산을 가진 복잡도가 높은 모델과 잘 어울린다.
  • 또한 어떠한 지도 학습 알고리즘도 배깅의 모델로 사용할 수 있다.

 

Result Aggregating

분류 문제의 경우

  • Majority voting : hard voting
  • Weighted voting (weight = 개별 모델들의 학습 정확도)
  • soft voting 등이 있다.

Stacking

개별 모델들의 예측 값을 입력으로 받아서 새로운 예측을 만들어내는 meta model을 학습

 

예를 들어 데이터셋을 2가지로 나눈 다면 하나는 개별 모델들의 학습 데이터로 사용하고, 다른 하나로 학습된 모델들로 예측을 만들어내고 meta model의 input model로 활용

 

Aggregation examples