보팅·스태킹
서로 다른 모델의 예측을 결합해 주택 판매가격을 더 안정적으로 예측하는 앙상블 방법입니다.
같은 주택을 두고 선형회귀는 41만 달러, 랜덤 포레스트는 43만 달러, 그래디언트 부스팅은 42만 5천 달러라고 예측했다면 어떤 값을 믿어야 할까요? 모델 하나를 고르는 대신 여러 모델의 판단을 함께 사용할 수 있을까요?
이처럼 여러 예측 모델의 결과를 결합해 최종 예측값을 만드는 방법이 보팅(Voting)과 스태킹(Stacking)입니다. 보팅은 모델의 예측을 평균하거나 가중 평균하고, 스태킹은 기본 모델의 예측을 입력으로 받는 별도의 모델을 학습합니다.
랜덤 포레스트나 그래디언트 부스팅도 여러 학습기를 이용하지만, 보팅과 스태킹은 이미 구성한 서로 다른 종류의 모델을 결합할 수 있다는 점이 특징입니다. 다만 앙상블을 만들었다는 사실만으로 개별 모델보다 항상 성능이 좋아지는 것은 아닙니다.
주택가격, 매출, 수요, 고객 행동 등 연속형 값을 예측하는 문제에서 유용합니다. 이번 글에서는 주택 판매가격 예제를 통해 보팅과 스태킹의 원리, 예측 결합 과정, 데이터 누수 방지, 성능 비교, 다른 분석과의 차이, 결과 보고 방법을 살펴보겠습니다.
보팅·스태킹이란 무엇인가요?
여러 모델의 예측을 결합하는 대표적인 앙상블 학습 방법입니다.
회귀 문제에서 보팅은 여러 모델이 예상한 숫자를 평균 또는 가중 평균하여 최종 예측값을 만듭니다. 반면 스태킹은 각 기본 모델이 만든 예측값을 새로운 설명변수로 사용해 메타모델을 학습합니다. 분류에서의 다수결 투표와 구별하기 위해 회귀 보팅은 보통 평균 결합이라고 설명합니다.
보팅·스태킹은 왜 필요한가요?
서로 다른 모델의 강점과 약점을 조합하기 위해 사용합니다.
선형회귀는 변수 간 선형 관계를 비교적 명료하게 표현하지만 복잡한 비선형성을 놓칠 수 있습니다. 랜덤 포레스트는 여러 나무를 평균해 변동성을 줄이고, 그래디언트 부스팅은 이전 모델의 오차를 차례로 보완합니다. 서로 다른 오류가 섞이면 앙상블이 오차를 줄일 가능성이 있지만, 모델들이 같은 방향으로 틀리면 효과는 제한됩니다.
보팅·스태킹은 어떤 원리로 작동하나요?
보팅은 평균을 내고, 스태킹은 예측을 결합하는 규칙을 학습합니다.
① 회귀 보팅: 예측값을 평균합니다
모델별 예측값이 410, 430, 425(천 달러)라면 단순 평균은 약 421.7(천 달러)입니다. 좋은 모델에 더 큰 비중을 주는 가중 평균도 가능하지만, 가중치는 평가자료를 보지 않고 학습 과정에서 정해야 합니다.
② 스태킹: 결합 방식을 학습합니다
스태킹에서는 기본 모델 세 개의 예측값을 메타모델의 입력으로 사용합니다. 메타모델은 어떤 상황에서 어느 모델의 예측을 더 신뢰할지 학습할 수 있습니다.
③ 최종 평가에서는 모델을 다시 선택하지 않습니다
학습자료 안에서 기본 모델, 결합 규칙, 하이퍼파라미터를 정한 뒤 마지막에 한 번만 독립 평가자료로 성능을 확인합니다. 평가 점수를 반복적으로 보고 조정하면 결과가 낙관적으로 바뀔 수 있습니다.
실제 사례: 주택 매물의 판매가격 예측
동일한 주택자료로 세 기본 모델과 두 앙상블을 비교합니다.
가상의 주택 매물 1,000건을 준비했습니다. 면적, 방 수, 건축연도, 지역, 역까지의 거리 등을 바탕으로 판매가격을 예측합니다. 800건은 학습과 교차검증에 사용하고, 200건은 최종 평가용으로 따로 둡니다.
| 변수 | 예제 | 역할 |
|---|---|---|
| 판매가격 | $425,000 | 목표변수 |
| 주택 면적 | 1,850 ft² | 입력변수 |
| 방 수 | 3개 | 입력변수 |
| 건축연도 | 2008년 | 입력변수 |
| 지역 | A / B / C | 범주형 입력변수 |
| 역까지의 거리 | 1.2마일 | 입력변수 |
결과표에 사용한 값은 방법을 설명하기 위해 설계한 가상 수치입니다. 실제 모델을 학습·평가해 얻은 성능으로 해석해서는 안 됩니다.
분석 전에 무엇을 확인해야 하나요?
가격자료의 특성과 평가 설계를 먼저 점검합니다.
| 점검 항목 | 확인할 내용 |
|---|---|
| 판매가격 분포 | 고가 주택·특이 거래의 영향 |
| 누락된 변수 | 면적·연식·지역 등 핵심 정보 누락 여부 |
| 시점 | 미래 가격을 예측한다면 시간 순서대로 분할 |
| 중복 매물 | 동일 주택이 학습과 평가에 동시에 포함되지 않는지 |
| 전처리 누수 | 결측치 대치·표준화·인코딩을 학습자료에서만 적합 |
| 평가지표 | MAE, RMSE 및 실제 금액 단위로 오류 확인 |
모델은 어떤 순서로 학습하나요?
기본 모델부터 만들고 보팅과 스태킹을 구성합니다.
① 학습자료와 최종 평가자료를 분리합니다
최종 평가용 200건을 제외한 800건에서만 모델 개발을 진행합니다. 실제 거래시점을 고려해야 하면 무작위 분할 대신 시간 기반 분할이 적절할 수 있습니다.
② 세 가지 기본 모델을 학습합니다
선형회귀, 랜덤 포레스트, 그래디언트 부스팅을 같은 학습자료로 비교하고 교차검증을 통해 설정을 선택합니다.
③ 보팅 모델을 구성합니다
기본 모델의 예측을 단순 평균하거나, 학습자료의 교차검증 결과로 정한 가중치에 따라 결합합니다.
④ 스태킹의 메타모델을 학습합니다
각 학습 행을 제외한 폴드에서 훈련된 기본 모델의 예측값(OOF)을 모읍니다. 이 예측값으로 메타모델을 학습해야 자기 자신을 학습한 모델의 과도하게 좋은 예측을 그대로 사용하지 않게 됩니다.
⑤ 동일한 평가자료에서 성능을 비교합니다
선정 과정을 마친 다섯 모델을 최종 평가자료 200건에 적용해 예측오차를 비교합니다.
보팅의 가중치는 어떻게 정하나요?
단순 평균에서 시작하되 가중 평균은 검증자료로 정합니다.
| 방식 | 결합 원리 | 특징 |
|---|---|---|
| 단순 평균 보팅 | 세 예측값을 1:1:1로 평균 | 설정이 간단하고 비교 기준으로 적절 |
| 가중 평균 보팅 | 예: 0.2·0.3·0.5로 평균 | 검증 과정에서 가중치 선택 필요 |
| 스태킹 | 예측값으로 메타모델 학습 | 비선형 결합까지 가능하지만 복잡성 증가 |
가중치가 큰 모델이 반드시 더 우수한 모델이라는 뜻은 아닙니다. 모델 간 오차의 상관관계도 결합 결과에 영향을 줍니다. 실제 데이터에서는 단순 평균부터 확인한 후 복잡한 방법을 비교하는 편이 좋습니다.
예측 성능은 어떻게 비교하나요?
동일한 최종 평가자료와 오류 지표를 사용합니다.
| 모델 | MAE (천 달러) | RMSE (천 달러) |
|---|---|---|
| 선형회귀 | 42 | 55 |
| 랜덤 포레스트 | 31 | 42 |
| 그래디언트 부스팅 | 29 | 39 |
| 보팅 | 27 | 36 |
| 스태킹 | 26 | 35 |
가상 결과에서 스태킹의 MAE는 2만 6천 달러로 다섯 모델 중 가장 낮습니다. 그러나 보팅의 2만 7천 달러와 차이는 1천 달러에 불과합니다. 이 차이가 우연한 평가 표본에 따른 것인지, 모델 복잡성이 증가할 만큼 실질적으로 중요한지는 추가 검토가 필요합니다.
MAE와 RMSE는 어떻게 해석하나요?
두 지표 모두 작을수록 좋지만 큰 오차를 반영하는 정도가 다릅니다.
MAE는 예측가격과 실제 판매가격의 차이를 절댓값으로 바꿔 평균한 값입니다. MAE가 2만 6천 달러라면 평가자료에서 절대 오차의 평균이 그 정도였다는 의미입니다. RMSE는 큰 오차에 더 큰 비중을 두므로, 일부 주택에서 가격을 크게 틀렸는지 살피는 데 도움이 됩니다.
보팅·스태킹에서 주의해야 할 점
복잡한 결합이 자동으로 우수한 예측을 보장하지 않습니다.
기본 모델들의 오류가 너무 비슷하지 않나요?
세 모델이 같은 집에 대해 비슷하게 틀린다면 평균을 내도 개선 폭이 작을 수 있습니다. 예측값과 잔차의 상관관계를 확인해 보세요.
스태킹에서 데이터 누수가 생기지 않나요?
메타모델 학습에 기본 모델의 학습자료 내 직접 예측값을 쓰면 과적합이 발생하기 쉽습니다. OOF 예측을 사용하고 모든 전처리를 교차검증의 학습 폴드 내에서 적합해야 합니다.
복잡성을 감수할 만큼 성능이 좋아졌나요?
성능 향상 폭이 작다면 학습·운영 비용, 설명 가능성, 추론 지연을 고려해 단순 모델이나 보팅을 선택할 수 있습니다.
지역·시점별로 일반화되나요?
인근 동일 단지 매물이나 인접한 거래 시점이 양쪽 자료에 섞이면 실제 신규 매물의 예측 성능보다 높게 평가될 수 있습니다.
다른 분석과 어떻게 다른가요?
여러 학습기를 사용하더라도 결합 방식은 서로 다릅니다.
| 방법 | 학습·결합 방식 | 특징 |
|---|---|---|
| 보팅 | 별도 모델의 최종 예측을 평균 | 간단한 결합 |
| 스태킹 | 기본 모델 예측으로 메타모델 학습 | OOF 예측 중요 |
| 배깅·랜덤 포레스트 | 재표집 또는 무작위화를 활용한 여러 모델 결합 | 분산 감소에 초점 |
| 그래디언트 부스팅 | 앞선 학습기의 손실을 보완하며 순차 학습 | 단계적으로 개선 |
| 단일 선형회귀 | 하나의 선형 관계를 적합 | 계수 해석이 상대적으로 쉬움 |
분석 결과는 어떻게 보고하나요?
자료 분할, 결합 방식, 오차 지표를 함께 제시합니다.
보고서에는 표본 수, 입력변수, 데이터 분할 방식, 결측치·범주형 변수 처리, 개별 모델 설정, 보팅 가중치, 스태킹의 폴드 구성과 메타모델, 평가 지표 및 주택가격의 단위를 명시합니다.
가상의 주택 거래자료 1,000건 중 800건을 모델 학습과 교차검증에, 200건을 최종 평가에 사용하였다. 선형회귀, 랜덤 포레스트, 그래디언트 부스팅을 기본 모델로 구성하고, 이들의 예측을 단순 평균한 보팅과 교차검증 기반 OOF 예측으로 메타모델을 학습한 스태킹을 비교하였다. 최종 평가자료에서 MAE는 선형회귀 42천 달러, 랜덤 포레스트 31천 달러, 그래디언트 부스팅 29천 달러, 보팅 27천 달러, 스태킹 26천 달러였다. 제시한 수치는 설명을 위해 설정한 가상 예시이다.
보팅·스태킹은 어디에 활용할 수 있나요?
여러 유형의 예측모델이 서로 다른 패턴을 포착할 때 활용할 수 있습니다.
| 활용 분야 | 예측 대상 | 예시 기본 모델 |
|---|---|---|
| 부동산 | 주택 판매가격 | 선형회귀·나무 기반 모델 |
| 유통 | 주간 판매량 | 회귀·부스팅 모델 |
| 에너지 | 전력 수요 | 시계열·머신러닝 회귀 |
| 제조업 | 제품 품질 점수 | 규제회귀·랜덤 포레스트 |
| 금융 | 손실 금액 예측 | 회귀·부스팅 모델 |
모든 분야에서 스태킹이 정답은 아닙니다. 독립 평가를 통해 개선 효과가 확인되고 운영할 수 있는 복잡도인지 판단하는 것이 중요합니다.
보팅과 스태킹은 서로 다른 모델의 예측을 모아 더 나은 결과를 시도하는 방법입니다.
결합 방식의 복잡함보다 새로운 주택에 대한 예측오차가 실제로 줄었는지가 중요합니다.
주택 판매가격 예제에서 선형회귀, 랜덤 포레스트, 그래디언트 부스팅은 같은 매물을 놓고 서로 다른 가격을 예측했습니다. 보팅은 세 값을 평균해 최종 가격을 만들었고, 스태킹은 기본 모델의 예측을 바탕으로 결합 규칙을 추가로 학습했습니다. 가상 결과에서는 스태킹이 가장 낮은 MAE를 보였지만, 개별 모델과 앙상블의 성능 차이가 실제 자료에서도 재현된다고 단정할 수는 없습니다.
특히 스태킹은 메타모델을 학습하는 과정에서 데이터 누수를 막는 설계가 중요합니다. 학습 행을 직접 예측한 값을 그대로 메타모델에 넣지 않고 교차검증 기반 OOF 예측을 사용해야 합니다. 최종 평가자료는 모델을 고르고 가중치를 조정하는 데 반복 사용하지 않아야 합니다. 예측 정확도뿐 아니라 유지관리 비용과 설명 가능성까지 고려한다면, 개선 폭이 작은 상황에서는 단순 보팅이나 잘 작동하는 단일 모델이 더 적절할 수도 있습니다.
회귀 보팅은 여러 모델의 가격 예측을 평균하고, 스태킹은 기본 모델 예측을 입력으로 사용하는 메타모델을 학습합니다. 스태킹의 메타모델은 교차검증으로 얻은 OOF 예측을 이용해 학습하고 최종 평가자료를 따로 유지해야 합니다. 앙상블의 가치는 모델의 개수가 아니라 독립 평가자료에서 확인된 예측오차 감소와 실제 운영 가능성으로 판단합니다.