의사결정나무 (Decision Tree) #
의사결정나무(Decision Tree)는 데이터의 특성을 기준으로 트리 구조를 만들어 분류나 회귀를 수행하는 지도학습 알고리즘이다. 트리의 각 노드에서 특정 조건을 만족하는지에 따라 데이터를 분할하며, 최종적으로 잎 노드(leaf node)에서 예측값을 결정한다.
한국어로 번역하면 조금 어색해서 실무에서는 “디씨션트리”라고 그냥 읽는다.
의사결정나무의 기본 개념 #
의사결정나무는 사람의 의사결정 과정과 유사한 방식으로 작동한다. 예를 들어, “날씨가 맑은가?”, “온도가 25도 이상인가?“와 같은 질문들을 순차적으로 하면서 최종 결정에 도달하는 과정과 같다.
트리는 다음과 같은 구성 요소로 이루어진다:
- 루트 노드(Root Node): 트리의 시작점으로 전체 데이터를 포함
- 내부 노드(Internal Node): 특정 조건에 따라 데이터를 분할하는 노드
- 잎 노드(Leaf Node): 최종 예측값을 가지는 노드
- 가지(Branch): 노드 간의 연결선으로 조건의 결과를 나타냄
의사결정나무의 장점 #
- 해석 가능성: 트리 구조를 통해 의사결정 과정을 직관적으로 이해할 수 있다
- 전처리 불필요: 데이터 정규화나 스케일링이 필요하지 않다
- 다양한 데이터 타입 처리: 수치형과 범주형 데이터를 모두 처리할 수 있다
- 결측값 처리: 결측값이 있어도 학습이 가능하다
- 특성 선택: 중요한 특성을 자동으로 선택한다
의사결정나무의 단점 #
- 과적합 경향: 복잡한 트리는 훈련 데이터에 과적합되기 쉽다
- 불안정성: 데이터의 작은 변화에도 트리 구조가 크게 달라질 수 있다
- 편향: 범주가 많은 특성을 선호하는 경향이 있다
- 선형 관계 처리 어려움: 선형적인 관계를 표현하기 위해 많은 분할이 필요하다
분할 기준 (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²)
의사결정나무는 해석 가능성과 사용 편의성 때문에 데이터 분석의 첫 번째 선택지로 자주 사용된다. 특히 비즈니스 환경에서 의사결정 과정을 설명해야 하는 경우에 매우 유용한 알고리즘이다.