Random Forests
04_4 : Ensemble Learning : Random-Forests Random Forest는 이전 글에서 공부했던 Bagging 방법의 특수한 형태로써 Decision Tree를 Base Learner로 사용한다. Random 하게 변수를 선택하여 여러개의 Decision Tree들( Forest )을 학습시키는 방법을 사용한다. 우선 Decision Tree에 대하여 알아보자. Decision Tree $d$개의 변수를 가지는 Data가 주어졌다고 가정하자. 이때 하나의 data point $v$는 아래와 같이 정의된다. $$v = (x_1,x_2,\cdots ,x_d) \in \mathbb{R}^d $$ 각 $x_i$는 변수 하나하나를 나타내는 스칼라 값이다. 변수가 매우 많은 경우, 앞서 배운 차원축소와 같은 방법을 사용하거나 이후에 다룰 Random Forest처럼 임의로 변수를 추출하여 사용한다. 변수의 추출은 $\phi (v)$ 함수에 의해서 이루어진다. $$\phi\;:\;\mathbb{R}^d \rightarrow \mathbb{R}^{d^\prime},\;\;\;\;d > d^\prime$$ Training Training 단계에서는 초록색 end node에 대응하는 정답 Label($y$)을 사용하여 각 노드를 분할하는 Split function의 매개변수를 최적화 한다. 각 노드에 대응되는 Data set을 $S$라고 하자. 그렇다면, 해당 집합은 Split function에 의하여 $S^L,\;S^R$ 두개의 집합으로 분할된다. $$S_i = S_i^L \cup S_i^R,\;\;S_i^L \cap S_i^R = \emptyset $$ 이렇게 Data를 분할하는 Split function은 데이터를 정보 획득량(information gain : $I$)이 최대화 되도록 분리한다. $$I = H(S) - \sum_{i\in\{L,R\}} \frac{|S^i|}{|S|} H(S^i),\;\;\;\;H(S) = -\sum...