본 포스팅은 고려대학교 산업경영공학부 강필성 교수님의 [Korea University] Business Analytics (Graduate, IME654) 강의 중 04-3: Ensemble Learning - Bagging 영상을 보고 정리한 내용입니다.
1. K-fold data split
- 데이터 관점의 다양성 확보
- 전체 데이터를 k개의 block으로 구분하고, 1개의 block씩 제외하며 학습 데이터셋을 구성
- 예를 들어, 첫 번째 모델에서는 1~(k-1) block을 학습 데이터셋으로 사용, 두 번째 모델에서는 1~(k-2), k block을 학습 데이터셋으로 사용... k 번째 모델에서는 2~k block을 학습 데이터셋으로 사용함
- \(f_i\)와 \(f_j\)는 (k-2)개의 block을 공통으로 갖고 있기 때문에, 모델의 독립성이 보장되지 않으며, 이로 인해 Ensemble의 이상적인 성능에는 도달하지 못함
- 현재는 거의 사용하지 않음
2. Bootstrap Aggregating : Bagging
- 복원추출(Sampling with replacement)을 통해 N개의 데이터셋 생성
- 원하는 개수만큼 Bootstrap을 만들어 낼 수 있음
- 어떤 객체는 생성된 Bootstrap에 단 한 번도 포함되지 않을 수 있음
- 우리가 가지고 있는 1개의 데이터의 분포를 좋은 방향으로 왜곡하는 역할
* y= f(x) + \(\epsilon\)의 \(\epsilon\)이 가질 수 있는 범위나 분포를 바꿔서, original dataset의 \(\epsilon\)에 종속적인 모델이 생성되지 않도록 함
- 위의 수식을 통해, N이 일정 수준 이상 커지면, 대략 2/3는 Bootstrap에 1회 이상 샘플링되고, 나머지 1/3은 샘플링되지 않는다는 것을 알 수 있으며, 샘플링 되지 않은 데이터는 Out of Bag (OOB) 데이터로 모델 검증에 사용됨
- OOB 데이터가 확률을 기반으로 생성되기 때문에, 충분히 많은 Bootstrap을 활용하게 되면, 검증에 대한 신뢰도가 높아질 수 있음 (train data 7, validation data 3으로 나눠서 검증하는 것보다)
- 상대적으로 모델 복잡도가 큰 알고리즘과 잘 어울리는 기법
- 어떠한 형태의 지도학습이어도 Bagging 기법을 사용할 수 있음
+ 인공신경망, SVM, DT, Log, Reg, LDA 등 ..
3. Result Aggregating (취합 방법)
- Majority voting : 새로운 객체 \(x_{new}\)에 대하여, 모든 모델에 대한 predicted class label을 구하고, 가장 많은 label을 최종 예측 결과 값으로 사용
- Weighted voting (weight = training accuracy of individual models) : OOB 데이터의 Accuracy를 가중치로 부여하여 가장 확률이 큰 label을 최종 예측 결과 값으로 사용
- Weighted voting (weight = predicted probability for each class): 새로운 객체 \(x_{new}\)에 대하여, 예측한 label에 대해 얼마나 자신감을 보이는지, 예측 확률을 가중치로 사용하여 확률이 가장 큰 lable을 최종 예측 결과 값으로 사용
- 이 외에도 다양한 조합으로 aggregation을 수행할 수 있으며, 일반적인 상황에서 분류 모형이면 "majority voting", 회귀 모형이면 "단순 평균"을 사용함
- Stacking : individual 모델의 예측값을 입력값으로 받아서, 최종 예측 결과를 출력하는 모델인 Meta-Learner을 새로 만드는 방법
+ 대체로 좋은 성능을 보임
참고 자료
'머신러닝' 카테고리의 다른 글
[분석 방법론] Ensemble Learning(5) - Adaptive Boosting(AdaBoost) (0) | 2022.12.12 |
---|---|
[분석 방법론] Ensemble Learning(4) - Random Forests (0) | 2022.12.12 |
[분석 방법론] Ensemble Learning(2) - Bias-Variance Decomposition (0) | 2022.11.29 |
[분석 방법론] Ensemble Learning(1) - Overview (0) | 2022.11.23 |
[분석 방법론] Anomaly Detection - Isolation Forest (0) | 2022.11.23 |
댓글