스태킹

 

스태킹(Stacking)이라는 기법은 전체적인 면에서는 앙상블 러닝과 같은 원리이지만, 기존의 앙상블 러닝과 조금 다른 면을 가지고 있다. 스태킹은 복수 개의 기반 학습기들이 학습 - 예측을 진행하고, 예측 데이터들을 학습 데이터로 입력 받는 메타 모델(최종 학습기라고 생각하면 이해하기 쉽다.)이 한번 더 학습 - 예측하는 방식이다. 아주 많이 사용되는 기법은 아니지만, 성능을 최대한으로 향상시키기 위해서 쓰이는 기법이다. 

 

 

교차 검증 기반의 스태킹

 

일반 스태킹의 경우, 최종 메타 모델이 학습하는 데이터가 학습 데이터가 아닌, 테스트 데이터를 예측한 값들을 학습하기 때문에, 과적합의 문제가 발생한다. 과적합을 완화시키기 위해서 스태킹 기법과 교차검증 기법을 동시에 적용한다. CV 교차 검증에서는 여러 개의 폴드로 나눈 데이터에서 하나의 폴드만이 검증 폴드가 되고, 나머지는 학습폴드가 되어 학습을 진행하고 검증 폴드를 예측하며 튜닝한다. 검증 폴드는 각 폴드가 한번씩 번갈아가며 모델이 학습을 진행하게 된다.

 

스태킹 기법에서는 학습 폴드로 학습한 기반 모델이 검증 폴드를 예측한 값들을 최종 메타 모델이 학습할 데이터로 만든다. 따라서 모든 폴드가 검증 폴드가 되어 학습 - 예측의 과정을 거치면 메타 모델을 위한 하나의 학습 데이터가 완성되는 것이다.  테스트 데이터들 또한, 검증 폴드가 바뀔때마다 예측을 진행한다. 기반 학습기가 학습을 완료한 시점에 폴드의 개수만큼 테스트 데이터들의 예측 값들이 나오게 되는데, 예측 값들의 평균을 내어 메타 모델의 테스트 데이터가 된다.

 

하나의 기반 학습기에서 메타 모델을 위한 훈련 데이터와 테스트 데이터를 만드는 과정

 

 

이렇게 모든 기반 학습기들이 학습 - 예측을 완료하게 되면 메타 학습기를 위한 데이터가 완성된다. 기존에 우리가 다루었던 데이터에서 각 피처 갈럼이 개별 기반 학습기들의 예측 값으로 대체된다고 생각하면 된다. 일반 스태킹 기법의 경우, 테스트 데이터로만 최종 메타 모델이 학습과 예측을 진행하였다면, 교차 검증과 함께 적용한 경우, 메타 모델이 학습은 학습 데이터로, 예측은 테스트 데이터를 이용하는 것을 볼 수 있다.

 

 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기