1. 의사결정나무
의사결정 규칙을 나무(tree) 모양으로 조합하여 목표 변수에 대한 분류 또는 예측을 수행하는 기법이다.
의사결정나무 타이타닉 호 탑승객의 생존 여부를 결정하기 위해 남자인지 여자인지, 나이는 9.5세 아래인지 아닌지, 함께 탑승한 형제/배우자 수는 2.5명 이상인지 아닌지 구분으로 3가지 단계들을 거치게 되면 일종의 학습이 되고 여러 승객의 조건들을 해당 3가지 체크리스트를 기반으로 따라가면서 생존 여부에 대한 예측을 할 수 있다. 이와 같이 예측 가능한 규칙들의 조합을 만들어가는 형태가 나무 모양과 같다고 하여 의사결정나무라고 일컫는다. |
(1) 의사결정나무의 구성
① 뿌리마디(Root Node) : 나무가 시작되는 마디
② 중간마디(Internal Node) : 뿌리마디에서 나온 각 나무줄기 중간에 있는 마디
③ 끝마디(Terminal Node) : 각 나무줄기의 끝에 있는 마디
④ 자식마디(Child Node) : 하나의 마디로부터 분리된 2개 이상의 마디
⑤ 부모마디(Parent Node) : 자식마디의 상위 마디
⑥ 가지(Branch) : 하나의 마디로부터 끝 마디까지 연결된 마디들
⑦ 깊이(Depth) : 가지를 이루는 마디의 개수
(2) 의사결정나무의 형성
분리기준(Split Criterion) 하나의 부모마디에서 어떤 입력변수를 입력하여 자식마디들로 분리하는 것이 의사결정나무 모델의 목표에 가장 잘 부합하는지에 대해 나누는 기준으로 부모마디보다 자식마디의 순수도(purity)가 증가, 불확실성이 감소하도록 진행한다. 정지규칙(Stopping Rule) 더 이상 분리가 일어나지 않고 현재의 마디가 끝마디가 되도록 하는 여러 규칙이다. |
① 분류나무 : 이산형(범주형) 목표변수에 따른 빈도 기반 분리에 사용한다.
- 카이제곱 통계량의 p-value
- 지니 지수(Gini index) : 영역 내에서 특정 클래스에 속하는 관측치들의 비율을 제외한 값으로 불순도를 측정하는 지표로서, 데이터의 통계적 분산정도를 정량화해서 표현한 값이다.
- 엔트로피 지수(Entropy index) : 엔트로피는 확률 변수의 불확실성을 수치로 나타낸 개념으로 확률분포가 가지는 정도의 확신도를 나타낸다.
② 회귀나무 : 연속형 목표변수에 따른 평균/표준편차 기반 분리에 사용한다.
- 분산분석 F-통계량의 p값(p-value of F-Statistic) : 등분산성을 검정하여 p값이 커지면 등분산성이 있음을 뜻하므로 낮은 이질성, 즉 순수도가 높아진다.
- 분산의 감소량(Variance reduction) : 분산의 감소량이 최대화가 될수록 낮은 이질성, 순수도가 높아지는 방향으로 가지분할이 진행된다.
(3) 의사결정나무의 분석과정
① 변수 선택 : 목표변수와 관련된 설명(독립) 변수들을 선택한다.
② 의사결정나무 형성 : 분석목적에 따른 적절한 분리기준과 정지규칙, 평가기준 등으로 훈련데이터를 활용 독립변수의 차원공간을 반복적으로 분할/분리 과정을 통해 의사결정나무를 형성한다.
- 정보획득(Information Gain)
: 정보이론(Information Theory)에서 순도가 증가하고 불확실성이 감소하는 것을 정보 획득이라고 하며 정보가 발생하는 사건의 확률이 높아질수록 정보 획득량, 가치는 줄어듦을 뜻한다.
- 재귀적 분기(Recursive Partitioning) 학습
: 의사결정나무 구분 전보다 구분 후 각 영역의 정보 획득량이 높아지도록 입력 변수의 영역을 구분하여 사전에 설정한 기준을 만족할 때까지 분기를 반복하는 학습이다. 구분 뒤 순도의 증가, 불확실성이 최대한 감소하는 방향으로 학습을 진행한다.
③ 가지치기 : 평가용 데이터를 활용, 부적절한 추론규칙을 가지고 있거나 불필요한 또는 분류오류를 크게 할 위험 있는 마디들을 제거한다.
- 에러감소 가지치기(Reduced Error Pruning)
- 룰 포스트 가지치기(Rule Post Pruning)
④ 타당성 평가
⑤ 해석 및 예측
(4) 의사결정나무의 대표적 알고리즘
① CART(Classification and Regression Trees)
일반적으로 활용되는 의사결정나무 알고리즘이다. 불순도 측도로 범주형 또는 이산형일 경우 지니지수를, 연속형인 경우 분산의 감소량을 이용한 이진분리(binary split)를 활용한다.
② C4.5 /C5.0
범주형/ 이산형 목표변수에만 활용되며 불순도 측도로 엔트로피 지수를 활용한다. 범주의 수만큼 분리가 일어나는데 각 마디에서 다지분리(multiple split)가 가능하다.
③ CHAID(Chi-squared Automatic Interaction Detection)
범주형/ 이산형 목표변수에만 활용되며 불순도 측도로 카이제곱 통계량을 활용한다. 가지치기를 하지 않고 적당한 크기에서 성장을 중지하며 분리변수의 범주마다 마디를 형성하는 다지분리(multiple split)가 가능하다.
④ 랜덤 포레스트(Random Forest)
부트스트래핑 기반 샘플링을 활용한 의사결정나무 생성 이후 배깅 기반 나무들을 모아 앙상블 학습하여 숲을 형성하게 되면 이를 랜덤 포레스트라고 일컫는다.
- 부트스트래핑(Bootstrapping) : 단순 복원 임의추출법(랜덤 샘플링)으로 크기가 동일한 여러 개의 표본자료를 생성한다.
- 배깅(Bagging : Bootstrap Aggregating) : 여러 부트스트랩 자료를 생성하여 학습하는 모델링으로 분류기(classifiers)를 생성한 후 그 결과를 앙상블 하는 방법이다.
- 부스팅(Boosting) : 가중치를 활용하여 약분류기(weak classifier)를 강분류기(strong classifier)로 만드는 방법으로 순차적으로 분류 모델들이 틀린 곳에 집중하여 새로운 분류 규칙을 생성하는 기법이다.
- 앙상블 학습(Ensemble Learning) : 여러 모델을 학습시켜 결합하는 방식의 학습방법으로 일반화(Generalization) 성능을 향상시켜 과적합을 해결할 수 있다.