[머신러닝] 의사결정나무(Decision tree) -1 : 장단점, 활용분야, 구조, 분석절차, 과적합
1. 의사결정나무(Decision tree)의 장단점과 활용 분야
의사결정나무는 머신러닝의 지도 학습에 해당되는 알고리즘 중 하나로, 의사결정 규칙(decision rule)을 나무 구조로 도표화하여 분류(Classification)와 예측(Prediction)을 수행하는 분석 방법이다. 쉽게 말해서 스무고개를 그림으로 나타냈다고 생각하면 된다. 따라서 의사결정나무는 직관적으로 이해하기 쉽기 때문에 설명이 필요한 경우에 많이 사용한다. 예를 들어, 의료 분야에서 환자가 어떤 병에 걸렸을 때 이러이러한 조건에 부합하기 때문에 어떠한 질병이 의심된다고 설명을 해주거나, 은행에서 대출이 제한된 고객에게 이러한 이유들 때문에 대출이 제한되었다고 설명하는 경우 등에 사용할 수 있다.
하지만 의사결정나무의 가장 큰 단점은 과적합으로 정확도가 떨어진다는 것이다. 모든 데이터들의 상황을 만족하는 완벽한 규칙은 만들기 어려움에도 불구하고 모델의 정확도만을 높이기 위해 계속해서 분류 조건을 추가하게 되면 트리의 깊이(depth)가 깊어지고, 실제 상황에서 유연하게 대처하는 능력이 떨어지게 되는 문제가 발생한다.
2. 의사결정나무의 구조
📌 key world : depth, root node, splitting, terminal node, parent node, child(leaf) node
3. 의사결정나무의 분석 절차
1️⃣ 의사결정나무 형성(Growing tree)
분석 목적을 정의하고, 분석 목적에 따라 적절한 분리 규칙(Splitting rule)을 찾아 나무를 성장시키는 과정이다. 나무를 키우다가 적절한 정지 규칙(Stopping rule)을 만족하면 성장을 중단시킨다.
📌 의사결정나무는 이러한 의사결정규칙에 따라 나무를 만들어 나간다.
➰ 재귀적 분할 알고리즘
: 재귀적 분할(recursive partitioning) 알고리즘은 의사결정나무를 만들어나가는 과정으로, CART / C4.5 / CHAID가 있다.
(다음 게시물에서 조금 더 자세히 정리)
➰ 불순도(Impurity) 지수
: 그룹안에 얼마나 다양한 객체가 있는지를 수치로 표현한 것으로, 목표 변수 (y)가 범주형 변수인 경우 불순도를 측정하여 불순도가 적은 방향으로 자식 가지를 형성해 나간다. 의사결정나무에서 불순도를 측정할 수 있는 지표로는 지니 지수, 엔트로피 지수, 카이제곱 통계량이 있다.
➰분리 기준
:우리가 스무고개를 할 때 어떤 질문을 하는가에 따라 답을 빠르고 정확하게 찾을 수 있게 된다. 마찬가지로 의사결정나무에서는 '어떤 분류 기준으로 나누면 데이터가 한쪽으로 잘 치우쳐질까?'를 고민하여 이 조건(분류 기준)을 찾는 방식으로 알고리즘을 만들어가야한다. 즉, 불순도가 가장 크게 감소되는 방향으로 자식 마디를 형성해나가야 한다. 또한 의사결정나무에서 가지를 형성할 때 CART는 이지 분리, C4.5와 CHAID는 다지 분리를 한다.
➰ 정지 규칙(Stopping Rule)
: 정지 규칙은 말그대로 나무를 키우다가 언제 멈출 것인지 설정해주는 것이다. 우리가 설정해줄 수 있는 부분은 1) 나무의 깊이(depth)가 몇 층까지 내려가게 할 것인지, 2) 끝마디의 레코드가 몇 개가 될 때까지 나눌 것인지를 정해줄 수 있다.
2️⃣ 가지치기(Pruning tree)
의사결정나무의 크기를 모형의 복잡도로 볼 수 있는데 너무 큰 모형은 과적합, 너무 작은 나무 모형은 과소 적합될 위험이 있다. 이때 의사결정 나무의 깊이(depth)가 깊어 과적합이 발생하는것을 방지하기 위해 불필요한 가지들을 제거하는 것을 가치지기라고 한다. 특히 분류 오류(Classification Error)를 크게 할 위험이 높거나 부적절한 규칙을 가지고 있는 가지들을 제거한다.
3️⃣ 최적 Tree 분류 (Classification) : 타당성 평가
검증용 데이터(Test data)를 이용하여 교차 타당성을 평가하는 단계이다.
4️⃣ 해석 및 예측
완성된 의사결정나무 모형을 해석하고, 분류 및 예측 모형을 설정하여 데이터의 분류 및 예측에 활용하는 단계이다.
4. 의사결정나무의 구분
➰ 분류 나무 (Classification Tree) : 목표 변수(y)가 범주형 변수인 경우
➰ 회귀 나무 (Regression Tree) : 목표 변수(y)가 수치형 변수인 경우
단, 의사결정나무 모델은 설명력이 좋기 때문에 설명이 필요한 경우에 주로 사용된다. 따라서 높은 정확도를 요구하며 예측을 목적으로 하는 분석의 경우에는 의사결정나무의 회귀모델을 사용하기보다는 신경망 알고리즘이나 회귀 분석 등 다른 예측 모델을 사용하는것이 훨씬 더 좋다.
⬇️ 의사결정나무 재귀적 분할 알고리즘 정리 ⬇️
[〚머신러닝〛] - [머신러닝] 의사결정나무(Decision tree)- 3 : C4.5와 엔트로피(Entropy) 지수 활용사례, 계산