에듀테크 프로젝트 대시보드
랜덤 포레스트 (Random Forest)
원본 데이터가 N개 있다면, 그중 N개를 중복을 허용해서 무작위로 다시 뽑는다(부트스트랩 샘플링, bootstrap sampling). 어떤 데이터는 2~3번 뽑히고, 어떤 데이터는 한 번도 안 뽑힐 수 있다. 이렇게 만든 "약간 다른" 데이터셋으로 트리를 하나씩 학습시키면, 트리들은 서로 완전히 같지도, 완전히 다르지도 않은 예측을 하게 된다.
배깅만으로는 트리들이 여전히 비슷해질 수 있다(특히 강력한 특징 하나가 있으면 모든 트리가 그 특징으로 첫 분할을 하려 한다). 그래서 랜덤 포레스트는 매 분할마다 전체 특징 중 일부만 무작위로 후보로 뽑아 그중에서 최선을 고른다. 특징이 10개면 매번 3~4개만 보는 식이다. 이렇게 하면 트리들이 서로 덜 닮게(비상관화) 되고, 평균의 효과가 커진다.
트리 하나의 예측을 "정답 + 잡음"이라고 생각하자. 잡음이 서로 독립적이라면, T개를 평균 낸 예측의 잡음 크기(표준편차)는
원래의 1/√T 배로 줄어든다. 즉 트리 100그루를 평균 내면 잡음이 대략 10분의 1로 줄어드는 셈이다 — 이게 앙상블이 안정적인 이유의 수학적 핵심이다.
같은 데이터에서 부트스트랩으로 뽑은 트리 여러 그루를 미리 길러 두었다. 다른 트리 보기로 개별 트리의 들쭉날쭉한 경계를 확인하고, 트리 개수 슬라이더로 오른쪽 "숲"이 몇 그루를 평균 낸 결과인지 바꿔 보라.
| 결정 트리 1그루 | 랜덤 포레스트 | |
|---|---|---|
| 학습 데이터 | 원본 그대로 | 부트스트랩 재표본 T번 |
| 분할 후보 | 모든 특징 | 매번 일부만 무작위 |
| 안정성 | 낮음(데이터 조금만 바뀌어도 확 변함) | 높음(평균이라 잘 안 흔들림) |
| 해석 가능성 | 규칙을 눈으로 읽기 쉬움 | 수백 그루 평균이라 해석은 어려움 |
| 대표 발전형 | 가지치기(pruning) | 그래디언트 부스팅(순차적 보정) |
부트스트랩 샘플링(배깅) + 매 분할 무작위 특징 후보로 서로 다르게 키운
결정 트리 여러 그루를 평균/다수결로 합친 앙상블. 트리 한 그루의 불안정함(높은 분산)을 평균으로 상쇄해 더 매끄럽고 일반화 잘 되는 경계를 만든다.
관련: 결정 트리, 편향-분산 트레이드오프, 그래디언트 부스팅.