이번 글에서는 앙상블 모델의 한 종류인 스태킹 앙상블(Stacking Ensemble)에 대해 소개한다.
Stacking Ensemble
스태킹 앙상블은 여러 모델을 이용하여 결과를 도출한 후 이를 종합하여 최종 예측을 한다는 점에서 보팅, 배깅 등의 다른 앙상블과 공통점이 있다. 스태킹 앙상블의 가장 중요한 차이점은 다음과 같다.
개별 알고리즘으로 예측한 데이터를 기반으로 다시 예측을 수행한다
왼쪽 그림이 보팅, 오른쪽 그림이 스태킹이다. 보팅은 학습데이터를 이용해 개별 모델들을 학습하고, 학습된 모델들을 기반으로 검증데이터의 label을 예측하여 예측결과를 합산하는 방식이다. 스태킹은 반면, 학습데이터를 이용하여 개별 모델을 학습하고, 학습 과정 중에 예측했던 개별 모델의 예측값을 모두 취합하여 최종 예측 모델의 학습 데이터로 이용된다. 최종 예측모델은 이렇게 생성된 학습 데이터를 기반으로 학습하고, 검증데이터의 label을 예측한다.
보팅, 스태킹을 이해가 쉽게 시험 문제를 예로 들어보자.
A, B, C 총 세명의 학생이 힘을 합하여 함께 O/X퀴즈 문제를 푼다.
하드 보팅
첫 번째 문제는 A, B가 O, C가 X라고 대답했다. 세 학생은 다수결을 이용해 O를 정답으로 채택하여 제출하였다.
소프트 보팅
두 번째 문제는 B와 C가 헷갈리지만 60%정도의 확률로 O를 지목했다. 그러나 A가 100% X가 정답이라고 주장하여 최종 정답은 X로 채택하여 제출하였다.
스태킹
세 번째 문제는 A, C가 O, B가 X를 지목하였다. 그러자 지켜보고 있던 학생 D가 다가와 문제를 보지 않고 A, B, C가 주장한 답만 듣고 이렇게 말하였다.
"지금까지 너희가 문제를 푸는 과정을 지켜보니까 이번엔 O가 정답일 것 같아"
최종적으로 A, B, C, D는 O를 정답으로 채택하여 제출하였다.
여기서 학생 A, B, C는 개별 모델이고, 학생 D는 최종 예측 모델이다. 그리고 A, B, C각각이 지금까지 주장한 정답과 실제 정답이 최종 예측 모델(학생 D)의 학습 데이터가 된다. 즉 스태킹 모델의 최종 예측 모델은 개별 모델이 예측한 결과와 실제 결과를 토대로 학습하여 최종 예측을 수행한다.
왼쪽 그림은 스태킹 모델의 전체적인 구조이고 오른쪽 그림은 CV(cross validation) 기반의 스태킹에서 각각의 개별 모델의 구조를 그림으로 나타낸 것이다. 오른쪽 그림을 자세히 보자. 개별 모델은 학습 데이터를 교차 검증을 이용하여 학습한다 이때 각각의 반복에서 검증 폴드를 예측하고 이를 모두 취합하면 학습데이터 크기의 예측 값 데이터가 생성된다. 이는 최종예측 모델이 학습하게 될 학습데이터로 사용된다. 또한 개별 모델이 테스트 데이터를 이용하여 예측한 결과값은 최종 예측 모델의 테스트 데이터셋으로 사용된다.
스태킹은 구조가 복잡하고 성능 향상이 보장되어 있지 않아 자주 사용되지는 않으나, 미세한 성능 향상도 중요한 영역에서 자주 사용된다.
'Machine Learning > Classification' 카테고리의 다른 글
추론과 결정 (0) | 2023.01.28 |
---|---|
세 가지 결정 이론(오분류 비율 최소화, 기대 손실 최소화, 거부 옵션) (0) | 2023.01.27 |
부스팅(Boosting) - XGBoost, LightGBM (0) | 2022.08.04 |
배깅(Bagging) - 랜덤 포레스트(Random Forest) (2) | 2022.08.02 |
Ensemble Learning - Voting(보팅) (1) | 2022.08.02 |