Decision Tree
Based on the lecture “Intro. to Machine Learning (2023-2)” by Prof. Je Hyuk Lee, Dept. of Data Science, The Grad. School, Kookmin Univ.
Decision Tree
-
결정 트리(Decision Tree) : 순도(Uniformity)를 최대로 가져가는 이진 판별 규칙들로 구성된 수형도(Tree)를 세우고 관측치를 분류하는 알고리즘
-
구조
- 루트 노드(Root Node) : 깊이가 0인 꼭대기 노드로서 최상위 노드
- 결정 노드(Decision Node) : 규칙 조건
- 리프 노드(Leaf Node) : 하위 노드가 존재하지 않는 노드로서 최종 범주
- 서브트리(Subtree) : 어떠한 규칙 노드를 루트 노드로 가지는 하위 트리로서 판별 규칙 집합의 부분집합
Recursive Partitioning
-
재귀적 분기(Recursive Partitioning) : 판별 규칙을 기준으로 상위 노드를 분할하여 순도가 높은 하위 노드를 생성하는 반복적인 과정
Discriminant Rule
-
어떤 노드에 대하여, 설명변수 $X_{i} \ge x_{i}$ 를 기준으로 해당 노드를 분할한다고 하자
\[y=\begin{cases} \begin{aligned} N_{left},\;&if\;X_{i} \ge x_{i}\\ N_{right},\;&if\;X_{i} < x_{i}\\ \end{aligned} \end{cases}\] -
판별 규칙 $X_{i} \ge x_{i}$ 의 비용 $J(X_{i} \ge x_{i})$ 는 다음과 같음
\[\begin{aligned} J(X_{i} \ge x_{i}) &= \frac{m_{left}}{m}I_{left} + \frac{m_{right}}{m}I_{right} \end{aligned}\]- $m$ : 결정 노드에 속한 관측치 갯수
- $m_{left}$ : 좌측 하위 노드로 분기한 관측치 갯수
- $I_{left}$ : 좌측 하위 노드의 불순도
- $m_{right}$ : 우측 하위 노드로 분기한 관측치 갯수
- $I_{right}$ : 우측 하위 노드의 불순도
-
설명변수 $X_{i}$ 기준 분할 시 최적의 분기점 $\hat{x}_{i}$ 는 다음과 같음
\[\hat{x}_{i} =\text{arg} \min_{x_{i}}{J(X_{i} \ge x_{i})}\] -
특정 노드를 분할하는 최적의 설명변수 $\hat{X}_{i}$ 는 다음과 같음
\[\hat{X}_{i} = \text{arg} \min_{X_{i}}{\left\{\min{J(X_{1})},\min{J(X_{2})},\cdots,\min{J(X_{n})}\right\}}\]
Impurity
-
지니 지수(Gini Index) : 불순도를 경제적 불평등 개념 에 기초하여 계산한 지표
\[\begin{aligned} I(N_{k}) &= 1-\sum_{i=1}^{c}{p_{i}^2} \end{aligned}\]- $c$ : 범주 갯수
- $p_{i}$ : 노드 $N_{k}$ 에서 $i$ 번째 범주에 속하는 관측치 비율
-
엔트로피 지수(Entropy Index) : 불순도를 정보 획득의 불확실성 개념 에 기초하여 계산한 지표
\[\begin{aligned} I(N_{k}) &= -\sum_{i=1}^{c}{\left[p_{i} \cdot \log_{2}{p_{i}}\right]} \end{aligned}\]- $c$ : 범주 갯수
- $p_{i}$ : 노드 $N_{k}$ 에서 $i$ 번째 범주에 속하는 관측치 비율
Pruning
-
가지치기(Pruning) : 자세하게 구분된 영역을 통합함으로써 과적합을 방지하는 기법
- 절차
- Full Tree 생성
- 모든 노드에 대하여 비용 복잡도 지수 계산
- 비용 복잡도 지수가 가장 낮은 노드에 대하여 가지치기 수행
- 2~3 단계를 반복하며 최적의 $\alpha$ 탐색
- 최적의 $\alpha$ 하 Tree 도출
-
비용 복잡도 지수(Cost-Complexity)
\[\begin{aligned} R_{\alpha}(T) &= L(T) + \alpha \cdot |\text{leaf}(T)|\\ L(T) &= \sum_{m=1}^{|\text{leaf}(T)|}{\sum_{\overrightarrow{x}_{i} \in R_{m}}{(y_{i}-\hat{y}_{i})^2}} \end{aligned}\]- $T$ : 타깃 노드를 루트 노드로 하는 서브트리
- $\text{leaf}(T)$ : $T$ 의 리프 노드 집합
- $R_{m} \in \text{leaf}(T)$ : $T$ 의 $m$ 번째 리프 노드
- \(\overrightarrow{x}_{i} \in R_{m}\) : \(R_{m}\) 에 속한 \(i\) 번째 관측치 벡터
- $y_{i}$ : $\overrightarrow{x}_{i}$ 의 실제값
- \(\hat{y}_{i}\) : \(\overrightarrow{x}_{i}\) 의 예측값
- $\alpha$ : 가지치기 강도
- $L(T)$ : $T$ 의 훈련 관측치에 대한 예측 손실
- $R_{\alpha}(T)$ : 타깃 노드의 비용 복잡도 지수
DTR
-
재귀적 분기
\[\begin{aligned} \hat{X}_{i} &= \text{arg} \min_{X_{i}}{\{J(X_{1},\hat{x}_{1}),J(X_{2},\hat{x}_{2}),\cdots,J(X_{n},\hat{x}_{n})\}}\\ \hat{x}_{i} &= \text{arg} \min_{x_{i}}{J(X_{i},x_{i})}\\ J(X_{i},x_{i}) &= \frac{m_{left}}{m}L_{left}+\frac{m_{right}}{m}L_{right} \end{aligned}\] -
차이점 : 손실 함수
-
판별 분석 : 불순도(Impurity)를 최소화하도록 분기
\[\begin{aligned} L_{gini}(N_{k}) &= 1-\sum_{i=1}^{c}{p_{i}^2} \end{aligned}\] -
회귀 분석 : 오차(Error)를 최소화하도록 분기
\[\begin{aligned} L_{MSE}(N_{k}) &= \sum_{i=1}^{m}{(y_{i}-\hat{y}_{i})^2} \end{aligned}\]
-