← AI 놀이터 홈으로

🌲 랜덤 포레스트 (Random Forest)

결정트리 한 그루는 잘 외우고 잘 틀려요. 조금씩 다른 나무 여러 그루를 심고 다수결로 답하면 훨씬 튼튼해져요 — 앙상블의 힘!

📖 따라하기 가이드 — 1 / 7 단계

Step 1. 나무 한 그루의 문제

결정트리 페이지에서 봤듯이, 깊게 자란 트리 한 그루는 잡음 점 하나까지 통째로 외우는 과적합에 빠져요 — 훈련 데이터엔 100%인데 새 데이터엔 약하죠. 랜덤 포레스트(Random Forest)의 해결책: 조금씩 다른 나무 여러 그루를 심고 다수결로 답하기! 화면의 점은 🔵 파랑과 🔴 빨강 두 반이고(가로 x, 세로 y, 둘 다 0~10), 배경색이 숲의 예측이에요. 캔버스를 클릭하면 점을 추가/삭제할 수 있어요.

🖱️ 캔버스를 클릭하면 선택한 색(🔵/🔴)의 점이 추가되고, 점 근처를 클릭하면 삭제돼요. 점이 바뀌면 숲 전체가 즉시 다시 자라요.

📂 데이터 꾸러미:

두 무리가 겹치고 엉뚱한 점도 섞여 있어요. 이 데이터에서 100% 정확도를 좇으면 어떤 일이 벌어질까요? (과적합 실험용)

가로축 x, 세로축 y (둘 다 0~10). 🌲 숲 전체 모드에서 배경색은 나무들의 투표 결과예요 — 파랑 표가 많을수록 파랑, 빨강(주황) 표가 많을수록 주황, 표가 반반으로 갈리는 곳은 하얗게 남아요. 🌳 나무 한 그루 모드는 개별 나무의 딱딱한 결정 영역(보라 선 = 그 나무의 질문들)이에요. 관전 포인트: T가 커질수록 잡음 점 주변의 작은 색 섬이 사라지고 경계가 부드러워지는 것!

🎛️ 숲 가꾸기

클릭으로 추가할 점

📊 지금 상태

나무 수
15그루
앙상블(다수결) 정확도
0 / 0
나무 1번 정확도
0 / 0
점 개수
0개

각 나무는 깊이 6까지 자라 훈련 점을 거의 외워요(정확도가 높아 보이죠). 하지만 진짜 볼 것은 배경 모양 — 한 그루는 지저분하고, 숲의 다수결은 부드럽고 안정적이에요.

🧮 수식과 파이썬

예측 = 다수결( 나무₁, 나무₂, …, 나무_T )
각 나무는 데이터를 조금씩 다르게 본(부트스트랩) 채로 자라요. 실수는 서로 상쇄됩니다
🐍 파이썬 코드로 보면? (펼치기)
from sklearn.ensemble import RandomForestClassifier
import numpy as np

# X: (n, 2) 좌표 데이터, y: 0(빨강) / 1(파랑) 라벨
X = np.array(coords)   # 예: [[7.2, 6.1], [2.3, 4.5], ...]
y = np.array(labels)

# 나무 100그루 — 각 나무는 부트스트랩 샘플 + 랜덤 특징으로 자라요
model = RandomForestClassifier(n_estimators=100, max_depth=6)
model.fit(X, y)        # 학습: 숲 심기 🌲🌲🌲

print("정확도:", model.score(X, y))   # 예측은 100그루의 다수결!