← 일백제ADsP 개념서
3과목 · 데이터 분석·8

의사결정나무

의사결정나무의 원리, 분리 기준(지니·엔트로피·정보이득), 가지치기와 과적합 방지, CART/C4.5/CHAID 비교를 정리합니다.

1. 의사결정나무란

의사결정나무(Decision Tree) 는 데이터 조건을 따라가며 If-Then 규칙으로 분류·예측하는 모델.

  • 사람이 읽기 쉬운 white-box 모델
  • 분류(Classification) + 회귀(Regression) 둘 다 가능
  • 전처리 부담 적음(스케일링 불필요)

2. 구조

            [Root]  소득 > 5000만?
           /        \
       예          아니오
      /              \
   [Node]         [Leaf: 비승인]
   나이 > 30?
   /     \
[Leaf] [Leaf]
 승인    비승인
  • Root: 시작 노드
  • Internal: 분기 조건
  • Leaf: 최종 결정(클래스/값)

3. 분리 기준(Split Criteria)

분류 트리는 순도를 높이는 방향으로 분할.

3-1. 지니 지수(Gini Index)

$$Gini = 1 - \sum p_i^2$$

  • 0: 완전 순수
  • 최대: 모든 클래스가 균등

3-2. 엔트로피(Entropy)

$$E = -\sum p_i \log_2 p_i$$

3-3. 정보 이득(Information Gain)

$$IG = Entropy(부모) - \sum \dfrac{|C_i|}{|T|} Entropy(C_i)$$

이득이 큰 속성을 먼저 분할.

3-4. 카이제곱(CHAID)

범주형 데이터, 통계적 유의성 기반 분할.

3-5. 분산 감소(회귀 트리)

잔차 제곱합을 기준으로 분할.

4. 대표 알고리즘

알고리즘 기준 특징
ID3 정보이득 범주형만, 최초
C4.5 이득률 연속·결측 처리
CART 지니(분류)·분산(회귀) 이진 분할, scikit-learn 기본
CHAID 카이제곱 다지 분할, 통계적 유의

5. 가지치기(Pruning)

5-1. 사전 가지치기(Pre-pruning)

  • 성장 중단 조건:
    • 최대 깊이
    • 최소 샘플 수
    • 정보이득 임계값

5-2. 사후 가지치기(Post-pruning)

  • 완전히 성장 → 약한 가지 제거
  • 비용복잡도 가지치기(Cost Complexity)
  • 검증 성능 기준

6. 과적합 방지 체크리스트

  • 트리 최대 깊이 제한
  • 최소 샘플 분할 설정
  • 가지치기
  • 교차검증 + 하이퍼파라미터 튜닝
  • 앙상블로 확장(RandomForest, GBM)

7. 장단점

장점 단점
해석 쉬움 과적합 취약
전처리 간단 작은 변화에 구조 민감
범주·연속 혼합 처리 선형 관계 비효율
시각화 용이 깊어질수록 일반화 저하

8. 변수 중요도

트리 모델은 변수 중요도를 제공.

  • 노드 분할 시 얻은 정보이득 합
  • 특성 선택에 활용

9. 예시 — 이탈 예측

Root: 가입기간 < 12개월?
├ 예
│ └ 월사용량 < 50GB? → 이탈
└ 아니오
  └ 할인 코드 있음? → 유지 / 없음 → 이탈

10. 파이썬 예시

from sklearn.tree import DecisionTreeClassifier
tree = DecisionTreeClassifier(max_depth=5, min_samples_split=20)
tree.fit(X_train, y_train)
pred = tree.predict(X_test)

# 변수 중요도
tree.feature_importances_

11. 출제 포인트

  • 지니·엔트로피·정보이득 공식·의미
  • CART·C4.5·CHAID 알고리즘 비교
  • 가지치기 사전 vs 사후
  • 트리의 장단점
  • 과적합 방지 방법

요약 체크리스트

  • 지니·엔트로피 공식을 쓸 수 있다
  • 정보이득으로 분할을 판단
  • 가지치기의 필요성 설명
  • 4가지 알고리즘의 분리 기준 매칭