한양과학기술고등학교

에듀테크 프로젝트 대시보드

랜덤 포레스트 (Random Forest)

랜덤 포레스트 (Random Forest)

나무 한 그루는 흔들리지만, 여러 그루를 평균 내면 숲은 안정된다  |  배깅 + 무작위성으로 만드는 결정 트리 앙상블
결정 트리 하나는 데이터를 완벽하게 외울 때까지 자라면 과적합되기 쉽고, 훈련 데이터가 살짝만 바뀌어도 트리 모양이 확 달라지는 불안정한(high variance) 모델이다. 랜덤 포레스트는 "서로 조금씩 다른" 트리를 수백 그루 심고, 예측을 평균 내서 이 불안정함을 상쇄한다.

1. 배깅(Bagging) — 데이터를 무작위로 다시 뽑기

원본 데이터가 N개 있다면, 그중 N개를 중복을 허용해서 무작위로 다시 뽑는다(부트스트랩 샘플링, bootstrap sampling). 어떤 데이터는 2~3번 뽑히고, 어떤 데이터는 한 번도 안 뽑힐 수 있다. 이렇게 만든 "약간 다른" 데이터셋으로 트리를 하나씩 학습시키면, 트리들은 서로 완전히 같지도, 완전히 다르지도 않은 예측을 하게 된다.

Bagging = Bootstrap Aggregating = 재표본 추출 + 예측 합치기

2. 무작위 특성 선택 — 트리들을 더 다르게 만들기

배깅만으로는 트리들이 여전히 비슷해질 수 있다(특히 강력한 특징 하나가 있으면 모든 트리가 그 특징으로 첫 분할을 하려 한다). 그래서 랜덤 포레스트는 매 분할마다 전체 특징 중 일부만 무작위로 후보로 뽑아 그중에서 최선을 고른다. 특징이 10개면 매번 3~4개만 보는 식이다. 이렇게 하면 트리들이 서로 덜 닮게(비상관화) 되고, 평균의 효과가 커진다.

3. 왜 평균을 내면 분산이 줄어드는가

트리 하나의 예측을 "정답 + 잡음"이라고 생각하자. 잡음이 서로 독립적이라면, T개를 평균 낸 예측의 잡음 크기(표준편차)는 원래의 1/√T 배로 줄어든다. 즉 트리 100그루를 평균 내면 잡음이 대략 10분의 1로 줄어드는 셈이다 — 이게 앙상블이 안정적인 이유의 수학적 핵심이다.

편향(bias)은 트리 하나든 여러 그루든 크게 달라지지 않지만, 분산(variance)은 평균을 낼수록 확실히 줄어든다. 편향-분산 트레이드오프 관점에서 랜덤 포레스트는 "분산을 줄이는" 대표적인 전략이다.

4. 데모 — 트리 한 그루 vs 숲 전체

같은 데이터에서 부트스트랩으로 뽑은 트리 여러 그루를 미리 길러 두었다. 다른 트리 보기로 개별 트리의 들쭉날쭉한 경계를 확인하고, 트리 개수 슬라이더로 오른쪽 "숲"이 몇 그루를 평균 낸 결과인지 바꿔 보라.

트리 개수(숲) 1
트리 #1 한 그루의 결정 경계
1그루 평균 — 색이 진할수록 그 클래스로 확신
트리 1그루 정확도
–
숲 전체 정확도
–
숲 트리 개수
1

5. 결정 트리와의 비교

결정 트리 1그루랜덤 포레스트
학습 데이터원본 그대로부트스트랩 재표본 T번
분할 후보모든 특징매번 일부만 무작위
안정성낮음(데이터 조금만 바뀌어도 확 변함)높음(평균이라 잘 안 흔들림)
해석 가능성규칙을 눈으로 읽기 쉬움수백 그루 평균이라 해석은 어려움
대표 발전형가지치기(pruning)그래디언트 부스팅(순차적 보정)
핵심 정리 — 랜덤 포레스트 = 부트스트랩 샘플링(배깅) + 매 분할 무작위 특징 후보로 서로 다르게 키운 결정 트리 여러 그루를 평균/다수결로 합친 앙상블. 트리 한 그루의 불안정함(높은 분산)을 평균으로 상쇄해 더 매끄럽고 일반화 잘 되는 경계를 만든다. 관련: 결정 트리, 편향-분산 트레이드오프, 그래디언트 부스팅.