공든탑앱 열기

앙상블: 배깅·부스팅·랜덤 포레스트

빅데이터분석기사 · 고급 분석기법 · 약 11분

쉽게 말하면

어려운 문제는 한 사람보다 여러 사람의 의견을 모으면 더 잘 맞히죠. 앙상블은 모형 여러 개를 만들어 다수결로 답을 정하는 방법이에요. 모두 똑같이 생각하는 사람만 모으면 소용없으니, 서로 다른 데이터로 학습시켜 다양한 모형을 만드는 게 핵심이에요.

시험용 정의

앙상블은 여러 개의 모형을 만들고 그 예측을 결합해 최종 예측을 내는 방법이다. 분류는 보팅(다수결), 회귀는 평균으로 합친다. 배깅(Bootstrap aggregating, 부트스트랩으로 모아 합치기)은 원래 데이터에서 복원추출한 부트스트랩 표본을 여러 개 만들어 각각 모형을 학습시킨 뒤 결합해 예측의 분산을 줄인다. 부스팅은 예측력이 약한 모형을 순차적으로 만들되, 앞 모형이 틀린 관측치의 가중치를 높여 다음 모형이 집중하게 하고, 잘 맞힌 모형에 더 큰 가중치를 줘서 합친다(AdaBoost, GBM, XGBoost). 랜덤 포레스트는 배깅에 무작위 변수 선택을 더해 나무들을 서로 다르게 만든 앙상블이다.

비유로 이해하기

퀴즈 대회 팀이다. 배깅은 같은 문제집을 조금씩 다르게 복사해 여러 명이 따로 공부하고 다수결로 답한다. 부스팅은 앞사람이 틀린 문제를 다음 사람이 집중 공부하는 이어달리기다. 랜덤 포레스트는 각자 공부할 때 일부 과목만 고르게 해서 서로 다른 관점을 갖게 한다.

자세히

먼저 알아 둘 말

말뜻
약한 학습기무작위보다 조금 나은 단순한 모형 (얕은 나무 등)
부트스트랩원래 데이터와 같은 크기로 복원추출한 표본. 약 63% 의 관측치가 들어가고 나머지(OOB)로 평가할 수 있다
보팅여러 모형의 예측 중 가장 많이 나온 범주를 고름. 확률을 평균하는 방식도 있다
스태킹여러 모형의 예측을 입력으로 받는 또 다른 모형으로 결합

배깅과 부스팅

배깅부스팅
학습 순서병렬 (서로 독립)순차 (앞 모형의 결과에 의존)
데이터부트스트랩 표본틀린 관측치에 가중치를 높인 데이터
결합같은 가중치로 투표·평균성능 좋은 모형에 큰 가중치
주로 줄이는 것분산 (불안정성)편향
주의이상값·잡음에 민감, 과대적합 가능
예배깅 나무, 랜덤 포레스트AdaBoost, GBM, XGBoost

랜덤 포레스트

  • 부트스트랩 표본으로 나무를 여러 그루 키운다 (배깅)
  • 마디를 나눌 때마다 전체 변수가 아니라 무작위로 고른 일부 변수만 후보로 쓴다
  • 나무끼리 덜 닮아서 결합 효과가 커진다
  • 변수 중요도를 알려 주지만, 나무 하나처럼 규칙을 읽을 수는 없다

알아 둘 점

  • 앙상블에 쓰는 모형끼리 상관이 낮을수록 좋다. 다 같은 답을 내면 합쳐도 나아지지 않는다
  • 의사결정나무처럼 불안정한 모형에 배깅이 특히 효과적이다
  • 성능은 대체로 좋아지지만 '항상' 단일 모형보다 낫지는 않고, 해석이 어려워진다

시험에 이렇게 나와요

확인 문제

Q1. 앞 모형이 잘못 분류한 데이터에 더 큰 가중치를 주며 모형을 차례로 만들어 가는 방법은?

  1. 배깅
  2. 랜덤 포레스트
  3. 부스팅
  4. 보팅
정답 보기

3번 부스팅

틀린 것을 집중해서 다시 배우며 순차적으로 쌓는 것이 부스팅이다. 배깅은 서로 독립적으로(병렬로) 학습한다.

Q2. 배깅에 대한 설명으로 옳은 것은?

  1. 앞 모형의 오차를 보완하며 순차적으로 학습한다
  2. 부트스트랩 표본마다 모형을 따로 학습해 결합한다
  3. 틀린 관측치에 큰 가중치를 준다
  4. 하나의 모형만 정교하게 키운다
정답 보기

2번 부트스트랩 표본마다 모형을 따로 학습해 결합한다

부트스트랩 표본마다 모형을 따로 학습해 결합한다. 순차 학습과 틀린 관측치 가중치 높이기는 부스팅의 특징이다.

Q3. 랜덤 포레스트가 배깅과 다른 점은?

  1. 순차적으로 학습한다
  2. 나무를 한 그루만 쓴다
  3. 마디마다 변수 일부만 무작위로 후보로 쓴다
  4. 부트스트랩을 쓰지 않는다
정답 보기

3번 마디마다 변수 일부만 무작위로 후보로 쓴다

무작위 변수 선택으로 나무끼리의 상관을 낮춘다.

Q4. 앙상블 효과를 크게 하려면 개별 모형이 어때야 하는가?

  1. 하나만 있어야 한다
  2. 서로 상관이 낮고 다양해야 한다
  3. 모두 같은 데이터로 학습해야 한다
  4. 모두 같은 예측을 내야 한다
정답 보기

2번 서로 상관이 낮고 다양해야 한다

서로 상관이 낮고 다양해야 한다. 모두 같은 예측을 하면 합쳐도 나아지지 않는다.

Q5. 다음 중 부스팅 계열 알고리즘은?

  1. k-평균
  2. Apriori
  3. 랜덤 포레스트
  4. AdaBoost
정답 보기

4번 AdaBoost

AdaBoost, GBM, XGBoost 가 부스팅이다.

Q6. 부스팅에 대한 설명으로 옳지 않은 것은?

  1. 잘못 분류된 관측치의 가중치를 높인다
  2. 약한 학습기를 차례로 결합한다
  3. 각 모델을 병렬로 학습한 뒤 같은 가중치로 투표한다
  4. 잡음이 많으면 과대적합될 수 있다
정답 보기

3번 각 모델을 병렬로 학습한 뒤 같은 가중치로 투표한다

'병렬로 학습해 같은 가중치로 투표한다'는 배깅이다. 부스팅은 약한 학습기를 차례로 학습하며 틀린 관측치에 가중치를 준다.

헷갈리기 쉬운 O·X

앙상블 모형은 항상 개별 모형보다 정확하다.

정답 보기

X 대체로 좋아지지만 항상은 아니다.

배깅은 불안정한 모형의 분산을 줄이는 데 효과적이다.

정답 보기

O

앙상블에 쓰는 모형끼리 상관이 높을수록 예측 정확도가 좋아진다.

정답 보기

X 상관이 낮고 다양할수록 좋다.

함께 보면 좋은 개념