의사결정나무

의사결정나무 (Decision Tree) #

의사결정나무(Decision Tree)는 데이터의 특성을 기준으로 트리 구조를 만들어 분류나 회귀를 수행하는 지도학습 알고리즘이다. 트리의 각 노드에서 특정 조건을 만족하는지에 따라 데이터를 분할하며, 최종적으로 잎 노드(leaf node)에서 예측값을 결정한다.

한국어로 번역하면 조금 어색해서 실무에서는 “디씨션트리”라고 그냥 읽는다.

의사결정나무의 기본 개념 #

의사결정나무는 사람의 의사결정 과정과 유사한 방식으로 작동한다. 예를 들어, “날씨가 맑은가?”, “온도가 25도 이상인가?“와 같은 질문들을 순차적으로 하면서 최종 결정에 도달하는 과정과 같다.

트리는 다음과 같은 구성 요소로 이루어진다:

  • 루트 노드(Root Node): 트리의 시작점으로 전체 데이터를 포함
  • 내부 노드(Internal Node): 특정 조건에 따라 데이터를 분할하는 노드
  • 잎 노드(Leaf Node): 최종 예측값을 가지는 노드
  • 가지(Branch): 노드 간의 연결선으로 조건의 결과를 나타냄

의사결정나무의 장점 #

  1. 해석 가능성: 트리 구조를 통해 의사결정 과정을 직관적으로 이해할 수 있다
  2. 전처리 불필요: 데이터 정규화나 스케일링이 필요하지 않다
  3. 다양한 데이터 타입 처리: 수치형과 범주형 데이터를 모두 처리할 수 있다
  4. 결측값 처리: 결측값이 있어도 학습이 가능하다
  5. 특성 선택: 중요한 특성을 자동으로 선택한다

의사결정나무의 단점 #

  1. 과적합 경향: 복잡한 트리는 훈련 데이터에 과적합되기 쉽다
  2. 불안정성: 데이터의 작은 변화에도 트리 구조가 크게 달라질 수 있다
  3. 편향: 범주가 많은 특성을 선호하는 경향이 있다
  4. 선형 관계 처리 어려움: 선형적인 관계를 표현하기 위해 많은 분할이 필요하다

분할 기준 (Splitting Criteria) #

의사결정나무에서 가장 중요한 것은 어떤 특성을 기준으로 데이터를 분할할지 결정하는 것이다. 주요 분할 기준은 다음과 같다:

1. 지니 불순도 (Gini Impurity) #

지니 불순도는 노드의 불순도를 측정하는 지표로, 값이 낮을수록 순수한 노드를 의미한다.

$$\text{Gini}(t) = 1 - \sum_{i=1}^{c} p_i^2$$

여기서 $p_i$는 노드 t에서 클래스 i의 비율이고, c는 클래스의 개수이다.

2. 엔트로피 (Entropy) #

엔트로피는 정보 이론에서 나온 개념으로, 노드의 무질서 정도를 측정한다.

$$\text{Entropy}(t) = -\sum_{i=1}^{c} p_i \log_2(p_i)$$

3. 정보 이득 (Information Gain) #

정보 이득은 분할 전후의 엔트로피 감소량을 나타낸다.

$$\text{Information Gain} = \text{Entropy}(\text{parent}) - \sum_{j} \frac{N_j}{N} \text{Entropy}(\text{child}_j)$$

가지치기 (Pruning) #

과적합을 방지하기 위해 트리의 크기를 줄이는 과정이다.

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

트리를 만들면서 미리 성장을 제한하는 방법:

  • 최대 깊이 제한
  • 최소 샘플 수 제한
  • 최소 정보 이득 임계값 설정

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

완전한 트리를 만든 후 불필요한 가지를 제거하는 방법:

  • 비용 복잡도 가지치기 (Cost Complexity Pruning)
  • 검증 데이터를 이용한 가지치기

의사결정나무의 변형 #

1. 분류 트리 (Classification Tree) #

범주형 목표 변수를 예측하는 트리로, 지니 불순도나 엔트로피를 분할 기준으로 사용한다.

2. 회귀 트리 (Regression Tree) #

연속형 목표 변수를 예측하는 트리로, 평균 제곱 오차(MSE)를 분할 기준으로 사용한다.

실제 적용 예시 #

의사결정나무는 다양한 분야에서 활용된다:

  • 의료 진단: 증상을 기반으로 질병을 진단
  • 금융: 대출 승인 여부 결정
  • 마케팅: 고객 세분화 및 타겟팅
  • 제조업: 품질 관리 및 불량품 탐지

앙상블 방법과의 연계 #

의사결정나무는 단독으로 사용되기보다는 앙상블 방법의 기본 모델로 많이 활용된다:

  • 랜덤 포레스트: 여러 개의 의사결정나무를 조합
  • 그래디언트 부스팅: 순차적으로 트리를 학습하여 성능 향상
  • 배깅: 부트스트랩 샘플링을 통해 여러 트리를 학습

성능 평가 #

의사결정나무의 성능은 다음과 같은 지표로 평가할 수 있다:

  • 분류: 정확도, 정밀도, 재현율, F1 점수, ROC-AUC
  • 회귀: 평균 제곱 오차(MSE), 평균 절대 오차(MAE), 결정계수(R²)

의사결정나무는 해석 가능성과 사용 편의성 때문에 데이터 분석의 첫 번째 선택지로 자주 사용된다. 특히 비즈니스 환경에서 의사결정 과정을 설명해야 하는 경우에 매우 유용한 알고리즘이다.