오답노트
[ML] 의사결정 트리 (Decision Tree) 본문
Decision Tree
분석과정을 실제로 눈으로 확인 가능한 알고리즘이다.
계산 비용이 낮아 대규모의 데이터도 빠르게 연산 가능한 장점이 있다.
지니 불순도
분류 후 얼마나 분류가 잘 됐는지 평가하는 지표다.
불순도가 낮을 수록 분류가 잘됐다고 판단한다.
어떤 집단에서 A를 가지는 집단과 B를 가지는 집단 둘로 나눴을 때,
각각의 집단에서 또 다시 True, False를 나눌 수 있다.
이 때, 집단 A의 불순도는 1-((A|T)^2 + (A|F)^2) 이고,
집단 B의 불순도는 1-((B|T)^2 + (B|F)^2) 이다.
수식으로 표현하면 아래와 같다.
p 는 집단에서 어떤 사건이 일어날 확률이다.
예를 들어 A|T는 A 집단에서 True가 발생할 확률이다.
정보 증가량
지니 불순도는 어떤 집단(부모)에서 A 또는 B를 가지는 집단(자식)으로 나눴을 때
A 또는 B를 가지는 집단(자식)의 불순도를 계산했다.
정보 증가량은 부모의 불순도에서 자식의 불순도를 뺀 것이다.
정보 증가량이 클 수록 분류가 잘됐다고 판단한다.
모델링 과정
1. root node(부모)에서 불순도가 가장 낮은 변수로 자식 node를 나눈다
2. 분리된 자식 node에서 또 또 다시 불순도가 가장 낮은 변수로 분리한다.
3. 2번을 반복하여 leaf node(target의 값)을 분리한다.
트리의 크기에 따라 예측 결과(정확도)가 달라진다.
'Python > ML' 카테고리의 다른 글
[ML] Decision Tree - plot_tree (0) | 2022.08.24 |
---|---|
[ML] Decision Tree - DecisionTreeClassifier (0) | 2022.08.24 |
[ML] KNN - KNeighborsClassifier (0) | 2022.08.23 |
[ML] 로지스틱 회귀 모델링 - LogisticRegression (0) | 2022.08.23 |
[ML] 범주형 데이터 모델 평가 방법 (0) | 2022.08.23 |