번역하면 의사결정 나무라고 하는데,
classification과 regression에 둘 다 쓰일 수 있는 머신러닝 방법입니다.
decision tree는 feature에 대한 조건을 통해 가지를 치면서 학습하는 방법입니다. numerical, categorical variable 둘 다 쓸 수 있고 분석 과정이 직관적이라는 점 때문에 많이 쓰이고 있습니다. (나중에 쓸 random forest가 decision tree를 더 발전시킨 형태)
이 decision tree는 불순도(impurity, 범주들이 섞여있는 정도)를 최소화하는 방향으로 진행되어야 합니다.
우리가 decision tree를 사용할 때
이 불순도를 판단하기 위한 척도로서,
1) Gini index, 2) Entropy index가 사용됩니다. 사이킷런에서 decision tree를 사용해보신 분들이라면 decision tree 설정 중에 gini index를 쓸 것인지, entropy index를 쓸 것인지 결정할 수 있음을 아실 겁니다.
$\text{Gini Index }=1-\sum_{i}^{n}(p_{i})^{2}$
여기서 $p_{i}$는 node에 존재하는 각 class의 비율을 의미합니다. (총 class의 개수는 n개)
위 decision tree 그림에서 leaf node로 표시한 node의 경우 gini index를 구해보면
$1-\( \frac{1}{30} \)^{2}-\( \frac{29}{30}\)^{2}=0.064$로 매우 낮은 값이 나옵니다. 즉 매우 불순도가 낮습니다.
반면에 마지막 depth의 왼쪽에서 두 번째 노드를 보면
$1-\( \frac{5}{10}\)^{2}-\( \frac{5}{10}\)^{2}=0.5$로 위의 0.064에 비하면 아주 큰 값이고, 불순도가 위 노드에 비해 높다고 볼 수 있습니다.
이 불순도를 기준으로 불순도가 충분히 낮아질 때까지 decision tree를 만들도록 기준을 세울 수도 있습니다.
$\text{Entropy index }=-\sum_{i=1}^{n} p_{i}\log_{2}(p_{i})$
이 지표 역시 불순도를 나타내는 지표입니다.
Decision tree의 과적합을 막기 위한 여러 기법들이 있는데 나중에 보충하도록 하겠습니다.
'연구 Research > 인공지능 Artificial Intelligent' 카테고리의 다른 글
[머신러닝] Boosting method (0) | 2021.05.26 |
---|---|
[머신러닝] Logistic Regression (0) | 2021.05.25 |
[머신러닝] Classification evaluation measure (0) | 2021.05.25 |
[머신러닝] Unsupervised learning : Clustering (0) | 2021.05.25 |
[인공지능수학] Probability & Statistics 개념 복습 (0) | 2021.02.28 |