저번 글과 비슷하게 이번 글에서는 분류와 회귀 모두 가능한 결정 트리(decision tree)에 대해서 알아보도록 하겠습니다.
결정 트리는 root node 와 그의 자식 노드, 그리고 자식노드가 없는 노드인 leaf node로 나뉘어져 있습니다.
하나의 노드는 두개의 노드를 가질 수 있습니다.
leaf node를 제외한 노드들은 훈련데이터의 샘플에 임곗값을 정하여 두개로 나누고 있습니다.
예를 들어 위의 그림에서 맨 위 층의 노드인 root node에서 width가 1이라면 오른쪽 밑으로 가게 됩니다.
samples는 각 노드로 분류된 모든 샘플의 개수입니다.
value는 분류된 샘플의 각 클래스의 개수입니다.
class는 그 노드에서의 예측값입니다.
gini는 불순도를 체크하는 방법중에 하나입니다.
decision tree에서 불순도를 체크하는 방법으로는 크게 gini와 entropy가 있습니다.
p_i, k 는 i 번째 노드에서 k클래스의 비율입니다.
그리고 Entropy식은 다음과 같습니다.
두 식은 실제로 큰 차이는 없지만, 지니 불순도를 이용하는 것이 더 빠릅니다.
지니 불순도는 가장 빈도가 높은 클래스를 한쪽 가지로 모는 경향이 있는 반면에 엔트로피는 더 균형 잡힌 트리를 만듭니다.
결정 트리 분류는 CART 훈련 알고리즘을 이용하여 학습합니다.
훈련데이터를 잘 분류하는 특성 k와 임곗값 t_k를 찾는것이 목표입니다.
G는 불순도이고, m은 샘플수입니다.
위의 비용함수를 최소화하는 노드들을 규제안에서 수행합니다.
결정트리는 다음의 하이퍼파라미터로 규제를 할 수 있습니다.
- max_depth: 노드의 최대 층
- min_samples_split: 분할되기 위해 노드가 가져야 하는 최소 샘플 수
- min_samples_leaf: 리프 노드가 가지고 있어야 할 최소 샘플 수
- max_leaf_nodes: 리프 노드의 최대 수
- max_features: 각 노드에서 분할에 사용할 특성의 최대 수
자, 그럼 이제 결정 트리로 회귀문제를 어떻게 해결하는지 알아보도록 하겠습니다.
결정 트리 분류에서 비용함수만 MSE로 변경시켜주면 됩니다.
결정트리는 각 노드가 value를 하나의 값으로 예측해냅니다.
일반적인 회귀랑은 다르게 예측을 해냅니다.
결정 트리의 결정적 단점으로는 데이터의 회전에 굉장히 취약하다는 점입니다. 적절한 데이터전처리로 이 문제를 해결할 수 있겠지만, 한계가 있습니다.
결정 경계가 항상 축에 수직이기 때문에 결정경계가 수직적이지 못한 데이터에서 좋은 결과를 보여주지 않는다는 단점도 있습니다.
'인공지능 > 이론' 카테고리의 다른 글
(14) 차원 축소 PCA (0) | 2021.10.22 |
---|---|
(13) 앙상블 (0) | 2021.10.14 |
(11) SVM (0) | 2021.10.11 |
(8) 선형회귀 과대적합/과소적합 (0) | 2021.10.10 |
(7) 경사하강법 (0) | 2021.10.10 |