Decision Tree ( 의사 결정 나무 )
의사 결정 나무의 특징
- 특정 변수에 대한 의사 결정(분기, 분류) 규칙을 Tree의 형태로 분류하는 분석 기법
- 분석 과정 자체를 시각화 할 수 있는 화이트박스 모델
- KNN과 마찬가지로 회귀/분류형 데이터에 사용할 수 있다.
- 연산 비용이 낮아서 빠르다.
예시: 타이타닉 생존자의 의사 결정 나무
의사 결정 나무의 구조
분류 조건의 중요도에 따라 순서대로 분류한다.
범주/회귀형 의사 결정나무
수치형 변수를 결정하기 위한 회귀형 모델
from sklearn.tree import DecisionTreeRegressor
범주형 변수를 결정하기 위한 범주형 모델
from sklearn.tree import DecisionTreeClassifier
의사 결정 나무의 분류 지표
지니 불순도 (Gini Impurity)
Gini=G(A)=1−i=1∑N(pi)2(0≤G(A)≤0.5)
target 정보가 1 : 0으로 완벽하게 나눠진다면 지니지수는 0, 반반으로 나눠진다면 최대 0.5를 나타낸다.
정보 엔트로피
Entropy=E(A)=−i=1∑Npilog(pi)(0≤E(A)≤1)
이분법일 때 지니 계수 계산법
다분법일 때 지니 계수 계산법
예시 1) 결혼 유무를 기준으로 분류 했을 때의 지니 불순도 이득
예시 2) 생존 여부를 기준으로 분류 했을 때의 지니 불순도 이득
정보 이득량 시각화
타이타닉 데이터를 생각하면서 만들었는데 처음에 생존-사망 여부를 타겟으로 두었어야 했는데 잘못 그린것 같다.
지니 불순도 감소량이 더 가파른 쪽을 먼저 선택한다. 따라서 결혼 유무보다 성별의 분류를 우선시한다.
참조
[ML] 의사결정트리(Decision Tree) 란?
10 장 의사결정나무(tree model)
의사결정나무(Decision Tree) - 26 Mar 2017
지니계수의 다분법
[머신러닝] 의사결정나무(Decision Tree)