← DataForge 홈
🌲

랜덤포레스트

여러 결정트리의 집단지성으로 예측하는 앙상블을 탐험합니다

랜덤포레스트를 관통하는 3가지 핵심 원리

🎒

1. 부트스트랩 (배깅)

전체 학생 데이터 중 복원 추출(중복 허용)로 무작위 샘플을 뽑아 각 나무들에게 나누어 줍니다. 나무마다 공부하는 교과서가 약간씩 달라지는 셈입니다.

🎲

2. 무작위 피처 선택

나무를 자를 때 모든 질문(피처)을 쓰지 않고, 랜덤하게 일부 질문들만 후보로 올려 최적의 질문을 고릅니다. 나무의 다양성이 극대화됩니다.

🗳️

3. 집단지성 (다수결)

새로운 학생이 왔을 때, 수많은 나무들이 각자 예측한 결과들을 모아 가장 많은 표를 얻은 예측값을 최종 결론으로 도출합니다.

시나리오 우리는 [공부시간, 수면시간, 출석률] 데이터를 기반으로 이 학생이 시험에 [합격(Pass)할지 불합격(Fail)할지] 예측하는 숲을 만듭니다.

하이퍼파라미터 설정 (숲 디자인)

4개

나무가 많을수록 예측이 안정적이고 과적합이 줄어듭니다.

3단계

깊이가 너무 깊으면 훈련 데이터에만 과하게 집착(과적합)할 수 있습니다.

2개

이 값을 낮추어야 자잘하게 분할되어 3단계 깊이까지 내려갑니다.

2개

전체 피처(공부, 수면, 출석) 중 몇 개를 랜덤 후보로 뽑아 분할 기준으로 쓸지 정합니다.

학습 데이터셋 (10명의 학생)

N=10

합격 여부 경계가 모호하고 약간 섞여 있는 상태(노이즈 데이터)일 때 나무가 더 깊게 성장합니다.

ID 📚 공부 시간 (h) 💤 수면 시간 (h) 🎯 출석률 (%) 예측 목표결과 (Label)

생성된 숲속의 나무들 (전체 포레스트 시각화)

무작위 데이터 복사본(부트스트랩)과 랜덤 질문 후보로 학습된 전체 숲의 독립된 나무들입니다. 나무를 클릭하면 하단 상세 분석 영역에서 자세한 질문 규칙과 수식을 검사할 수 있습니다.

선택된 나무 #1 상세 분석 및 규칙 검사

사용된 부트스트랩 샘플

전체 10명 중에서 중복 선택을 허용하여 해당 나무에만 배정된 데이터 교과서입니다. (노란색: 중복)

ID 공부 수면 출석 결과
고유 샘플 수: 0 / 10
중복 복제된 수: 0
나무 내부 의사결정 규칙 (Decision Boundary Flow) 깊이: 3
Pass Fail 💡 화살표는 위에서 아래로 흐릅니다. (초록선: 조건 부합 / 빨간선: 조건 미부합)

실시간 다수결(Voting) 시뮬레이터

수정하는 즉시 현재 구성된 숲의 나무들이 실시간으로 투표를 진행하여 최종 예측을 내립니다.

가상의 테스트 학생 정보

5.5시간
6.5시간
85%

각 나무들의 개별 판정

집단지성 최종 판정
합격 투표율: 75% 불합격 투표율: 25%

💡 쉽게 이해하는 랜덤포레스트 동작 원리 요약

Q 데이터가 무작위로 복사된다는 게 무슨 뜻인가요? (부트스트랩)

랜덤포레스트는 같은 교실에 숲 전체가 존재하는 구조입니다. 만약 모든 나무가 완전히 똑같은 데이터로만 공부하면, 모든 나무의 모양과 생각(규칙)이 똑같아질 것입니다.
이를 막기 위해 각 나무에 학습용 데이터를 줄 때, 전체 10개 행 중 무작위로 10번을 복제 추출(한 행이 여러 번 뽑히거나, 아예 안 뽑힐 수도 있음)하여 나누어 줍니다. 이를 통해 나무마다 각기 다른 시각에서 데이터를 학습하게 됩니다.

Q 트리가 분기점을 가를 때 불순도(Impurity)는 어떻게 사용되나요?

의사결정나무는 "한 번의 질문으로 합격자와 불합격자를 가장 깨끗하게 편가르기할 수 있는 질문"을 찾아 하위 노드를 만듭니다. 이때 편가르기가 잘 되지 않고 섞여 있는 정도를 지니 불순도(Gini Impurity)라고 부릅니다.
모두가 합격이거나 불합격이면 불순도는 0(가장 순수함)이 되며, 질문 전후의 불순도 감소 폭을 계산하여 가장 효과적으로 클래스를 분리하는 분기점을 알고리즘이 자동으로 계산해 냅니다.

Q 왜 그냥 큰 의사결정나무 하나만 쓰는 것보다 나은가요?

하나의 깊고 복잡한 나무는 학습용 데이터에만 너무 빠져들어 "과적합(Overfitting)"되기 쉽습니다. 실전에서 낯선 데이터를 만났을 때 융통성을 잃고 엉터리 답을 낼 확률이 높습니다.
반면, 여러 개의 개성 넘치고 약간은 부족한 나무들이 각자 독립적으로 예측하고 다수결 투표를 통해 의견을 취합하면, 개별 나무의 오차가 서로 상쇄되어 훨씬 부드럽고 정확한 일반화 성능을 보여주게 됩니다.