의사결정나무 시뮬레이션

Decision Tree Visualization & Simulation
클릭으로 점 추가 — Class A(파랑), Class B(빨강). Train을 누르면 히트맵과 트리가 업데이트됩니다.

의사결정나무는 어떻게 계산될까요?

결정 나무(Decision Tree)는 입력공간을 축(axis)-정렬된 조건(예: x ≤ t, y > s)으로 반복 분할하여 리프(leaf)에서 클래스나 예측값을 출력하는 비모수 모델입니다. 각 내부 노드는 하나의 분할 기준(특징과 임계값)을 가지고, 왼쪽/오른쪽 서브트리로 데이터를 나눕니다.

불순도(Impurity) — Gini와 엔트로피

노드의 품질을 측정하기 위해 Gini impurity 또는 정보 이득(엔트로피 기반)을 사용합니다. Gini impurity는 다음과 같이 정의됩니다:

\[ G = 1 - \sum_{k} p_k^2 \]

여기서 \(p_k\)는 노드 내 클래스 \(k\)의 비율입니다. 최적 분할은 좌우 노드의 가중 평균 불순도를 최소화하는 임계값을 찾는 것입니다.

분할(스플릿) 과정
  1. 모든 후보 특징(feature)과 후보 임계값(threshold)을 평가합니다. (이 구현은 축정렬 분할: x 또는 y)
  2. 각 후보로 좌/우 서브셋을 나눈 뒤, 가중 불순도(좌우 길이로 가중 평균)를 계산합니다.
  3. 불순도가 가장 크게 줄어드는 (즉 가중 불순도가 최소가 되는) 분할을 선택합니다.
정지 조건(Stopping criteria)

일반적으로 다음 중 하나에 도달하면 분할을 멈춥니다:

  • 최대 깊이(max depth)에 도달
  • 노드의 샘플 수가 최소(min samples) 보다 작음
  • 노드의 불순도가 0 (모두 한 클래스)
과적합과 가지치기(Overfitting & Pruning)

결정 나무는 깊게 성장하면 훈련 데이터에 과적합하기 쉽습니다. 가지치기(pruning)를 통해 불필요한 분할을 제거하거나, 사전 제한(최대 깊이, min_samples)을 설정하여 일반화 성능을 개선합니다.

장점 / 단점
  • 장점: 해석 가능성(결정 규칙을 사람이 읽을 수 있음), 범주형·수치형 모두 처리, 전처리(정규화)가 덜 필요.
  • 단점: 과적합 쉬움, 경계가 축 정렬이므로 복잡한(대각선/곡선) 경계는 여러 분할이 필요.
Model Info
Points: 0 A · 0 B
Last split score: -
Decision Tree (text)

        
Split Calculation Log