Ch.07

앙상블 (Ensemble)과 랜덤 포레스트: 집단 지성의 힘

앙상블(Ensemble)은 여러 인공지능 모델의 예측을 하나로 합쳐서 훨씬 더 강력하고 똑똑한 결과를 만들어내는 마법 같은 방법입니다. 혼자 고민하는 것보다 여러 전문가가 머리를 맞대면(집단 지성) 더 훌륭한 결론이 나오는 것과 완벽히 같은 원리입니다. 대표적인 기법인 배깅, 부스팅과 이를 의사결정나무에 적용한 '랜덤 포레스트'까지, 초보자도 쉽게 이해할 수 있도록 재미있는 비유와 함께 알아봅니다.

챕터별 머신러닝 도식화

챕터를 선택하면 아래 도식이 해당 챕터 내용으로 바뀌어요. 머신러닝 흐름을 한눈에 보세요.

여러 모델(나무)의 예측을 투표 또는 평균으로 합쳐 최종 예측을 냅니다.

  • ① 훈련 데이터에서 부트스트랩 샘플을 뽑아 여러 나무를 학습
  • ② 각 나무가 독립적으로 예측
  • ③ 분류: 다수결, 회귀: 평균 → 최종 예측
  • ④ 최종 예측이 결정됩니다
데이터나무1나무2나무3투표/평균예측

앙상블과 랜덤 포레스트: 집단 지성의 힘

앙상블의 기본 아이디어: 백지장도 맞들면 낫다 — 앙상블은 여러 개의 모델을 팀으로 꾸려, 각자의 예측을 모아 최종 결론을 내리는 기법입니다. 법정에서 배심원들이 투표로 판결을 내리듯, 하나의 모델만 쓸 때보다 오답을 낼 확률(분산)이 확 줄어들고 예측이 훨씬 안정적으로 바뀝니다. 범주를 맞히는 분류 문제에서는 다수결(투표), 숫자를 맞히는 회귀 문제에서는 예측값의 평균을 사용합니다.
왜 하나보다 여럿이 나을까요? (집단 지성의 힘) — 100명의 사람에게 눈대중으로 소의 무게를 맞혀보라고 하면, 개개인의 대답은 틀릴지 몰라도 100명의 '평균'을 내면 실제 소의 무게와 놀랍도록 비슷해집니다. 여러 모델이 독립적으로 판단하고 결과를 모으면, 개별 모델이 가진 엉뚱한 오차들은 서로 상쇄되고 진짜 공통된 정답의 신호만 남게 되기 때문입니다.
세 가지 대표 앙상블 기법: 배깅, 부스팅, 스태킹
(1) 배깅(Bagging): 여러 모델에게 무작위로 뽑은 서로 다른 모의고사(데이터)를 풀게 한 뒤, 공평하게 투표하는 방식입니다.
(2) 부스팅(Boosting): 첫 번째 모델이 틀린 문제를 두 번째 모델이 집중적으로 공부하고, 또 틀린 걸 세 번째가 공부하는 식으로 약점을 보완하며 순차적으로 학습하는 오답 노트 방식입니다.
(3) 스태킹(Stacking): 여러 현장 요원(기본 모델)들의 보고서를 바탕으로, 팀장(메타 모델)이 최종 결정을 내리는 방식입니다.
랜덤 포레스트(Random Forest): 개성 넘치는 나무들의 숲 — 배깅 방식에 '의사결정나무' 수백 그루를 심어 만든 숲입니다. 나무들이 다 똑같은 생각만 하면 앙상블의 의미가 없겠죠? 그래서 나무를 키울 때 데이터의 특성(질문 거리)도 무작위로 일부만 골라서 주어집니다. 어떤 나무는 '나이'만 보고 판단하고, 어떤 나무는 '소득'만 보고 판단하게 만들어 다양성을 극대화하는 것이 핵심 비법입니다.
수식으로 보는 투표와 평균 — 복잡한 수식 대신 개념만 기억하세요! 분류 문제에서 다수결이란 단순히 '가장 많은 나무가 지목한 정답'을 고르는 것입니다. 집값을 예측하는 것과 같은 회귀 문제에서는 아래 핵심 수식처럼 모든 나무가 부른 값을 더한 뒤 나무의 수로 나눕니다.
* 평균 수식: y^=1Bb=1By^b\hat{y} = \frac{1}{B}\sum_{b=1}^B \hat{y}_b
* 의미: BB는 숲에 있는 총 나무의 수이고, y^b\hat{y}_bbb번째 나무가 예측한 값입니다. (예: 3그루가 각각 100, 150, 200을 예측했다면 최종 예측은 150)
OOB(Out-of-Bag) 평가: 자가 진단 모의고사 — 배깅이나 랜덤 포레스트는 모델을 훈련시킬 때 전체 데이터에서 일부만 무작위로 뽑아서 씁니다. 이때 뽑히지 않고 남은 데이터(Out-of-Bag)들이 자연스럽게 생기는데, 이를 버리지 않고 해당 데이터를 보지 못한 나무들의 성능을 평가하는 '모의고사'용으로 알뜰하게 재활용합니다. 덕분에 따로 테스트 데이터를 떼어놓지 않아도 모델의 실력을 가늠할 수 있습니다.
바람에 흔들리지 않는 튼튼한 숲 — 의사결정나무 '한 그루'는 데이터가 조금만 바뀌어도 나무 모양이 확 변할 만큼 예민합니다. 하지만 랜덤 포레스트처럼 '수백 그루의 숲'을 이루면, 몇 그루가 엉뚱한 답을 내더라도 전체 숲의 결정은 흔들리지 않습니다. 실전에서 압도적으로 안정적인 성능을 자랑합니다.
Ch06 의사결정나무의 완벽한 확장판 — 앞서 배운 나무의 구조(불순도, 정보 이득 등)를 그대로 사용합니다. 즉, 새로운 복잡한 규칙을 배우는 것이 아니라, 이미 배운 나무들을 '어떻게 잘 모아서 투표시킬 것인가'의 문제이므로 이전 챕터의 지식이 100% 활용됩니다.
현업과 데이터 대회의 치트키 — 랜덤 포레스트는 특별히 복잡한 설정을 만지지 않아도 기본적으로 성능이 매우 뛰어나, 실무자들의 '첫 번째 시도 모델'로 가장 사랑받습니다. 또한 어떤 변수가 중요한지(특성 중요도) 알려주기 때문에 현업에서 결과의 이유를 설명하기도 좋습니다.
비즈니스의 만능 해결사 (분류·회귀 공통) — '이메일이 스팸인가 아닌가?' 같은 분류 문제부터, '내일의 주가는 얼마일까?' 같은 회귀 문제까지 형태를 가리지 않고 거의 모든 비즈니스 문제에 투입될 수 있습니다.
핵심 원인 찾기 (특성 중요도) — 대출 심사 모델을 만들었을 때, 나무들이 공통적으로 가장 많이 의존한 질문이 '연봉'이라면 연봉이 대출에 가장 중요한 변수(Feature)임을 찾아낼 수 있습니다. 불필요한 데이터를 걸러내는 데 큰 도움을 줍니다.
다양한 실전 적용 사례 — 신용카드 사기 거래 탐지, 넷플릭스나 유튜브의 콘텐츠 추천 시스템, 공장 설비의 고장 시기 예측 등 정확도와 안정성이 생명인 거의 모든 산업 분야의 심장 역할을 하고 있습니다.
앙상블·랜덤 포레스트 풀이 요약
(1) 다수결: 클래스 0에 투표한 나무 수와 클래스 1에 투표한 나무 수를 비교해 많은 쪽이 최종 예측 클래스(0 또는 1).

(2) 투표 수: 최종으로 이긴 클래스에 몇 표가 모였는지가 답.

(3) 회귀 평균: 여러 나무의 예측값을 더해서 나무 개수로 나눈 값(평균), 필요하면 반올림.

(4) OOB: 해당 샘플이 몇 개 나무의 부트스트랩에 포함되지 않았는지가 OOB 개수.

(5) 수식: y^=1Bb=1By^b\hat{y} = \frac{1}{B}\sum_{b=1}^B \hat{y}_b 에서 BB는 나무 개수, y^b\hat{y}_bbb번째 예측값. 합을 BB로 나누면 평균. 아래 문제 풀이를 위한 설명 표와 예시를 참고하세요.