Ensemble: Stacking
ㅁ Ensemble
ㅇ 정의:
여러 개의 모델을 결합하여 하나의 예측 결과를 도출하는 방법론으로, 개별 모델의 약점을 보완하고 성능을 향상시키는 데 목적이 있다.
ㅇ 특징:
– 개별 모델의 다양성이 중요하며, 상호 보완적인 모델일수록 효과가 좋다.
– Bagging, Boosting, Stacking 등의 다양한 기법이 있다.
– 과적합 방지를 위해 데이터 분할 및 교차 검증을 활용한다.
ㅇ 적합한 경우:
– 단일 모델로는 충분한 성능을 내기 어려운 복잡한 문제.
– 데이터 양이 많고, 다양한 모델을 실험할 수 있는 자원이 있는 경우.
ㅇ 시험 함정:
– 단순히 여러 모델을 결합한다고 항상 성능이 좋아지는 것은 아님.
– 모델 간 상호 보완성을 고려하지 않으면 성능 저하 가능.
ㅇ 시험 대비 “패턴 보기” 예시:
1. Ensemble 기법은 단일 모델보다 항상 성능이 우수하다. (X)
2. Ensemble은 모델 간의 상호 보완성을 활용하여 성능을 향상시킨다. (O)
================================
1. Stacking
ㅇ 정의:
여러 개의 개별 모델의 예측 결과를 새로운 메타 모델의 입력으로 사용하여 최종 예측을 수행하는 앙상블 기법이다.
ㅇ 특징:
– 1단계에서 여러 기본 모델(Base Learner)을 학습시킨다.
– 2단계에서 이들의 예측 결과를 기반으로 메타 모델(Meta Learner)을 학습시킨다.
– 메타 모델은 일반적으로 선형 회귀, 로지스틱 회귀, 결정 트리 등이 사용된다.
ㅇ 적합한 경우:
– 데이터가 충분히 많아 복잡한 모델을 학습시킬 수 있는 경우.
– 기본 모델의 예측 결과 간 상관관계가 낮을 때.
ㅇ 시험 함정:
– 모든 기본 모델을 동일 데이터로 학습시키면 과적합 위험이 존재.
– 메타 모델의 선택이 결과에 큰 영향을 미침.
ㅇ 시험 대비 “패턴 보기” 예시:
1. Stacking은 메타 모델을 활용하여 기본 모델의 예측 결과를 결합한다. (O)
2. Stacking은 기본 모델의 예측 결과를 단순 평균하여 최종 결과를 도출한다. (X)
ㅁ 추가 학습 내용
1. Bagging과 Boosting과의 비교 설명:
Bagging과 Boosting은 앙상블 학습 기법으로, 데이터 샘플링 방식과 반복 학습을 활용하여 성능을 향상시킵니다. Bagging은 여러 개의 기본 모델을 병렬적으로 학습하며, 각 모델은 원본 데이터의 부분집합(부트스트랩 샘플)을 사용합니다. 이를 통해 과적합을 줄이고 모델의 안정성을 높입니다. 반면 Boosting은 기본 모델을 순차적으로 학습하며, 이전 모델이 잘못 예측한 샘플에 가중치를 부여하여 다음 모델이 해당 샘플을 더 잘 학습하도록 합니다. Stacking은 이들과는 다르게 기본 모델의 예측 결과를 메타 모델에 입력으로 사용하여 최종 예측을 수행합니다. 즉, Stacking은 모델 간의 관계를 학습하는 데 초점을 맞추며, Bagging과 Boosting은 데이터 샘플링 및 반복 학습을 활용하는 점에서 차이가 있습니다.
2. 메타 모델 선택 기준:
메타 모델은 기본 모델의 예측 결과를 기반으로 최종 예측을 수행하는 역할을 합니다. 메타 모델을 선택할 때는 문제의 특성과 데이터의 특성을 고려해야 합니다.
– 선형 회귀: 과적합 위험이 낮고 데이터가 선형적으로 분포되어 있을 때 적합합니다. 예를 들어, 회귀 문제에서 기본 모델의 예측 결과가 선형적으로 결합될 가능성이 높다면 선형 회귀를 선택할 수 있습니다.
– 결정 트리: 비선형 관계를 잘 학습할 수 있으며, 기본 모델의 예측 결과 간에 복잡한 상호작용이 있는 경우 유용합니다. 예를 들어, 예측 결과가 비선형적으로 결합되어 있다면 결정 트리를 메타 모델로 사용하는 것이 효과적일 수 있습니다.
– 기타 모델: 문제의 특성에 따라 랜덤 포레스트, 서포트 벡터 머신(SVM), 또는 신경망 같은 다양한 알고리즘을 고려할 수 있습니다. 메타 모델을 선택할 때는 과적합 가능성, 계산 비용, 데이터 크기 등을 종합적으로 평가해야 합니다.
3. 데이터 분할 방법:
Stacking에서는 데이터 분할(예: K-Fold Cross Validation)을 활용하여 기본 모델의 예측 결과를 메타 모델이 학습할 수 있도록 합니다. 이 과정은 다음과 같습니다:
– 데이터를 K개의 폴드로 나눕니다.
– 각 폴드에 대해, 나머지 K-1개의 폴드를 사용하여 기본 모델을 학습하고 해당 폴드에 대해 예측을 수행합니다. 이렇게 하면 각 데이터 샘플에 대해 기본 모델의 예측 결과를 얻을 수 있습니다.
– 이 예측 결과를 메타 모델의 학습 데이터로 사용합니다.
– 메타 모델은 기본 모델의 예측 결과를 입력으로 받아 최종 예측을 수행합니다.
이러한 데이터 분할 방법을 사용하는 이유는 메타 모델이 기본 모델의 성능을 과대평가하지 않도록 하기 위함입니다. 즉, 기본 모델이 학습한 데이터와 동일한 데이터로 예측 결과를 생성하면 과적합이 발생할 수 있으므로, K-Fold Cross Validation을 통해 일반화된 예측 결과를 얻는 것이 중요합니다.