-
R 데이터 마이닝 '의사결정 나무 (Decision Tree)'란?머신러닝 with R 2019. 7. 23. 01:21
의사결정 나무 추론이란?
의사결정 나무 추론은 데이터 마이닝에서 대중적으로 사용하는 방법론이다. 의사결정규칙을 나무 구조로 도표화하여 분류(classification)와 추정(esimation)을 수행하는 분석 방법이다.
입력된 변수(x)를 바탕으로 목표 변수(y)의 값을 예측하는 모델을 생성하는 것이 목적이다.
의사결정나무는 규칙들을 표현하고 있으며, 이러한 규칙은 문장 형태로 표현될 수 있다. 신경망, 판별분석, 회귀분석보다 이해하기 쉽고 설명력이 높다는 특징이 있다.
의사결정 나무는 초등학생 때 누구나 한 번쯤 해본 '스무고개'와도 같다. 어떤 연속된 질문들에 대해 예/아니오로 대답함으로써 정답을 찾아 나가는 과정이다. 처음 질문의 답에 따라 다음 질문이 달라지는 것도 스무고개와 비슷하다고 볼 수 있다.
의사결정 나무의 구성요소
- 뿌리 노드(root node): ① 마디, 나무 구조가 시작되는 노드
- 자식 노드(child node): ② ③은 ① 의 자식노드
- 부모 노드(parent node): ①은 ② ③의 부모 노드
- 끝마디 노드(terminal node) or 잎 노드(leaf node): ④ ⑤ ⑦ ⑧ ⑨, 각 나무줄기의 끝에 위치하며, 의사결정 나무에서 분류 규칙은 끝마디의 개수만큼 생성
- 중간 노드(internal node): ② ③ ⑥ 끝마디 노드가 아닌 노드들
- 깊이(depth): 마디의 개수
분할과 가지치기
의사결정 나무는 분할(split)과 가지치기(pruning)를 통해 생성된다. 목표 변수 측면에서 부모 노드보다 더 순수도(purity)가 높은 자식 노드들이 되도록, 데이터를 반복적으로 더 작은 집단으로 나누게 된다.
이것을 분할이라고 하며 반복되는 분할 작업을 통해 완벽히 분기된 의사결정 나무 (Fully growth tree, 최대 나무)를 최종적으로 만들게 되는데, 이 최대 나무는 훈련 데이터의 집합에 최적화되어 있다고 할 수 있지만 가장 분류가 잘 된 나무는 아니다. 바로 과적합 문제를 가지고 있기 때문인데 이로 인해 오차가 높아질 수 있기 때문이다. 따라서 가지치기를 통해 규칙들을 좀 더 심플하게 만들고 일반화시키는 것이 필요하다.
균형화
의사결정 나무를 생성할 때에 unbalancing 문제가 생길 수 있다. 일반적으로 다수 집단보다 소수 집단에 대한 예측에서 더 커질 수 있다. 따라서 균형화를 하지 않을 경우에는 전체 분류의 정확도를 높이기 위해서 다수 집단으로 예측하곤 한다. 일반적으로 균형화 방법으로는 다수 집단에 대해서는 under sampling을, 소수집단에 대해서는 over sampling을 한다.
의사결정 나무의 주요 알고리즘
구분 CHAID CART C5.0 목표필드 명목형, 순서형, 연속형 명목형, 순서형, 연속형 명목형 예측변수 명복형, 순서형, 사전그룹화된 연속형 명목형, 순서형, 연속형 명목형, 순서형, 연속성 분리기준 카이제곱 통계량, F-통계량 지니지수, 분산의 감소량 Information Gain 분리개수 다지분리 이지분리 다지분리 가지치기 불가능 가능 가능 의사결정 나무 분석의 단계
1) 의사결정 나무의 형성
- 적절한 분리 기준(split criterion)과 정리 규칙(stopping rule)을 지정하여 의사결정 나무 생성
2) 가지치기
- 분류 오류(classification error)를 크게 할 위험이 높거나, 부적절한 노드를 가지는 가지를 제거
- 모형의 일반화
3) 타당성 평가
- AUROC, confustion matrix 및 이익 도표, 위험 도표, 검증용 자료에 의한 교차 타당성 등을 통해 평가
4) 해석 및 예측
의사결정 나무의 장단점
장점 단점 해석의 용이성
- 이해하기 쉬움
- 목표 변수를 설명하기에 더 중요한 독립변수 파악이 쉬움
비연속성
- 연속형 변수를 구간화 시켜서 비연속적으로 처리함
- 분리의 경계점 부근에서 예측 오류가 클 수 있음
교호 효과의 해석
- 시너지 효과 (두 변수 간의 영향력)를 해석 가능
선형성 또는 주 효과의 결여
- 각각의 변수의 독립적 영향력을 해석할 수 없음
비모수적 모형
- 선형성, 정규성, 등분 산성 등의 가정이 필요 없음
비안정성(과적합)
- 훈련 데이터 집합에만 의존
- 테스트 데이터 집합에 의한 평가가 필요
- 씨드를 설정해주지 않으면 방금 전의 결과도 다시 보기가 어려움 (휘발성)
모델의 생성 속도가 빠름
- 계산 비용이 적다
이러한 의사결정 모델에 필요한 R packages는 대표적으로 rpart, party, caret, C50, randomForest, xgboost 등이 있으며 ROSE라는 패키지를 통해 균형화 함수를 사용할 수 있다. (Random Over-Sampling Examples)
[참고] 실무에서 써먹는 머신러닝 with R
https://study.com/academy/lesson/what-is-a-decision-tree-examples-advantages-role-in-management.html
https://dreamlog.tistory.com/576
반응형'머신러닝 with R' 카테고리의 다른 글
앙상블(Ensemble) 모형 / Bagging과 boosting (0) 2019.07.28 R로 그래프 만들기 /ggplot2 패키지 /R 시각화 (0) 2019.07.25 R 기계학습 모델링 기법 및 알고리즘 (지도학습, 비지도학습, 분류모델, 추정모델, 군집모델, 연관성 모델) (0) 2019.07.22 R 데이터 정제/ 결측치 및 이상치 제거하기 (0) 2019.07.18 자유자재로 데이터 가공하기2. 데이터 전처리/ dplyr 패키지/mpg 데이터 심화 활용 (0) 2019.07.18