트리 모델
간단하게 설명하면 회귀분석을 연속형이 아닌 범주형 변수를 예측하기 위해 사용하는 방법이다.
보통 의사결정나무(Decision tree)로 불린다.
트리 모델은 if else 문들을 모아놓은 집합체라고 할 수 있는데,
처음부터 하나의 질문에 if else, 이후에 가지를 뻗어나가며 마치 나무를 거꾸로 그린것과 같이 보여지게 된다.
이론
재귀 분할(recursive partitioning)
트리 모델을 만들 때에 사용하는 알고리즘은 재귀 분할(recursive partitioning)이다.
재귀 분할을 간단하게 설명하면
어떤 데이터의 예측변수 X(1,2,...,n)에 대해
1. 각 예측변수 Xj에 대해 어떤 질문(s)을 넣어 모든 데이터에 대해 >= s , < s인 두 집합으로 나눈다.
2. 나눠진 각 집합 안에 동질성을 측정한다.
3. s를 바꿔가며 1,2를 반복하여 가장 동질성이 큰(또는 가장 정보 이득이 높은) 변수 Xj와 s를 선택한다.
4. 나눠진 하위 영억에 1~3을 반복하며 계속해서 분할한다.
5. 더 이상 하위 영역의 동질성이 개선되지 않는다면 알고리즘을 종료한다.
재귀 분할에서 사용하는 동질성 또는 불순도는 주로
엔트로피, 지니 불순도를 사용한다.
불순도 지표
엔트로피
I(A) = -sum(p * log(p))
p는 특정 노드 속에서 어떤 클래스에 속할 확률을 말하는 것으로,
모든 값이 한 클래스에 속하면 엔트로피 I(A)는 0이 된다.
지니 불순도
I(A) = -sum(p(1-p)) = 1- sum(p^2)
엔트로피와 달리 로그 계산이 없다는 장점이 존재한다.
이 지표들을 사용하여
정보 이득이 제일 높은 Xj, s를 찾아나간다.
정보 이득(Information Gain)
정보이득 IG를 식으로 표현하면,
IG = I(부모) - sum(Nj/N * I(자식j)) 이 된다.
설명하면, 정보이득 IG는 부모 노드의 I, 불순도 지표에서 모든 자식 노드의
Nj(자식 노드의 N수)/N(부모 노드의 N수) * 자식 노드의 I를 더한 값이 된다.
여기서 I는 지니 불순도 또는 엔트로피 등을 사용하면 된다.
예시로 이진 분할 기준 IG는
IG = I(부모) - (N(left)/N * I(left)) - (N(right)/N * I(right))
으로 구할 수 있게 된다.
이 공식을 사용하여 앞서 설명한 재귀분할 알고리즘을 진행하여 트리 모델을 생성할 수 있다.
참고. 트리의 가지 분할을 멈춰야 하는 상황
1. 분할을 통해 얻어지는 하위 잎의 크기가 작을 경우
2. 새로운 분할 영역이 유의미하게 불순도를 줄이지 못하는 경우
실습
TBD