부트스트랩 표본마다 모델을 독립적으로 학습한 뒤 평균 또는 투표한다. 주로 분산을 줄이는 데 효과적이다.
부스팅(Boosting)
앞선 모델이 충분히 설명하지 못한 표본이나 잔차에 초점을 맞춰 모델을 순차적으로 추가한다.
투표·평균(Voting/Averaging)
여러 모델의 클래스, 확률 또는 수치 예측을 정해진 규칙으로 직접 결합한다.
스태킹(Stacking)
기저 모델의 예측을 새로운 특성으로 사용하고, 메타 모델이 이 특성으로 최종 결합 규칙을 학습한다.
2.1 배깅과 랜덤 포레스트
배깅(bagging, bootstrap aggregating)은 원본 훈련 데이터에서 복원추출로 여러 부트스트랩 데이터셋을 만들고, 각 데이터셋에서 모델을 서로 독립적으로 학습한다. 회귀에서는 보통 예측값의 평균을, 분류에서는 다수결 또는 예측 확률의 평균을 사용한다.
원본 데이터
→
여러 부트스트랩 표본
→
독립적인 기저 모델
→
평균 또는 투표
랜덤 포레스트(random forest)는 배깅된 결정트리에 추가 무작위성을 부여한다. 각 노드에서 분할할 때 전체 특성이 아니라 무작위로 선택한 일부 특성만 후보로 검토한다. 이 과정은 트리 사이의 상관을 낮추어 앙상블의 분산 감소 효과를 높이는 데 도움을 준다.
2.2 OOB 평가
크기가 n인 데이터에서 n개를 복원추출해 부트스트랩 표본을 만들면 일부 관측값은 그 표본에 포함되지 않는다. 이들을 OOB(out-of-bag) 표본이라고 한다. 표본 수가 충분히 클 때 각 부트스트랩 표본에서 제외되는 관측값의 기대 비율은 약 36.8%이고, 한 번 이상 포함되는 고유 관측값의 기대 비율은 약 63.2%이다.
각 관측값은 자신이 학습에 포함되지 않은 트리들의 예측만 모아 평가할 수 있다. 따라서 랜덤 포레스트와 같은 배깅 모델에서는 별도의 검증 세트를 떼지 않고도 OOB 오차로 일반화 성능을 추정할 수 있다. 다만 OOB 평가는 완전히 독립된 최종 테스트 세트를 대체하는 것은 아니며, 작은 데이터나 조정이 많은 경우에는 불확실성이 커질 수 있다.
2.3 스태킹과 투표의 차이
스태킹에서는 여러 기저 모델의 예측값 또는 예측 확률을 메타 모델(meta learner)의 입력 특성으로 사용한다. 메타 모델은 어떤 기저 모델을 어느 상황에서 얼마나 신뢰할지를 데이터로부터 학습한다.
기저 모델 A의 예측
기저 모델 B의 예측
기저 모델 C의 예측
→
메타 모델의 최종 예측
메타 모델을 학습할 때 기저 모델이 이미 학습에 사용한 같은 표본에 대한 예측을 그대로 입력하면 데이터 누수가 발생할 수 있다. 이를 막기 위해 일반적으로 교차검증에서 얻은 OOF(out-of-fold) 예측으로 메타 모델을 학습한다.
스태킹과 하드 투표는 다르다.
하드 투표는 각 모델이 선택한 클래스를 단순 다수결로 결합한다. 반면 스태킹은 기저 모델의 예측을 입력으로 받아 메타 모델이 결합 규칙을 학습한다. 따라서 스태킹이 항상 단순 다수결만 사용한다는 설명은 옳지 않다.