스태킹(stacking, stacked generalization의 줄임말)은 앙상블에 속한 모든 예측기의 예측을 취합하는 간단한 함수(직접 투표 같은)를 사용하는 대신 취합하는 모델을 훈련시킬수는 없을까? 라는 기본 아이디어로 출발한다.
다음 그림은 새로운 샘플에 회귀 작업을 수행하는 앙상블을 보여주고 있다. 아래의 세 예측기는 각각 다른 값(3.1,2.7,2.9)을 예측하고 마지막 예측기 (블렌더, blender 또는 메타 학습기,meta learner 라고 한다)가 이 예측을 입력으로 받아 최종 예측(3.0)을 만든다.
블렌더를 학습 시키는 일반적인 방법은 홀드 아웃 세트를 사용하는 것이다. 먼저 훈련 세트를 두 개의 서브셋으로 나눈다. 첫 번째 서브셋은 첫 번째 레이어의 예측을 훈련시키기 위해 사용된다.
그런 다음 첫 번째 레이어의 예측기를 사용해 두 번째 (홀드 아웃) 세트에 대한 예측을 만든다. 예측기들이 훈련하는 동안 이 샘플들을 전혀 보지 못했기 때문에 이때 만들어진 예측은 완전히 새로운 것이다. 홀드 아웃 세트의 각 샘플에 대해 세 개의 예측값이 있다. 타깃값은 그대로 쓰고 앞에서 예측한 값을 입력 특성으로 사용하는 새로운 훈련 세트를 만들 수 있다(새로운 훈련 세트는 3차원이 된다). 블렌더가 새 훈련 세트로 훈련된다. 즉, 첫 번째 레이어의 예측을 가지고 타깃값을 예측하도록 학습된다.
'Machine Learning > Advanced (hands on machine learning)' 카테고리의 다른 글
25. 차원 축소 - PCA (0) | 2021.05.26 |
---|---|
24. 차원 축소 - 차원의 저주 (0) | 2021.05.26 |
21. 앙상블 학습과 랜덤 포레스트 - 부스팅(Ada,Gradient,xgboost) (0) | 2021.05.22 |
20. 앙상블 학습과 랜덤 포레스트 - 랜덤 포레스트 (0) | 2021.05.22 |
19. 앙상블 학습과 랜덤 포레스트 - 배깅과 페이스팅 (0) | 2021.05.22 |