머신러닝의 기법으로 결정 트리(Decision Tree)를 사용하여 예측 모델을 만드는 결정 트리 학습법(Decision Tree Learning)이 있다. 결정 트리는 의사 결정 규칙과 그에 따른 결과를 보기 쉽게 트리 구조로 나타내어 결과에 대한 원인 파악이 가능하다는 장점이 있다. 즉, 결정 트리의 규칙들이 어떤 기준으로 설정되었는지 살펴보고 분류 결과 확인이 같이 가능하기 때문에 분류 기준을 파악하기에 유용할것이다.

decisiontree5


결정 트리의 종류로 분류트리(Classification Tree)와 회귀트리(Regression Tree)가 있는데, 두 방식 모두 특정한 기준을 정하고 그 순간의 최적의 결정을 하는 greedy 방식을 따른다. 분류트리는 Target변수(Y)가 범주형 변수인 경우 사용하는데 정보이득(InformationGain)이 최대가 되는 특성으로 데이터를 나누고 정보이득은 불순도(Impurity)를 통해 계산한다. 여기서 불순도는 타겟변수의 분류가 잘 되어 있을수록 0에 가까운 값이 나온다.

decisiontree3

불순도 불순도를 쉽게 표현하자면 방의 어질러진 정도를 나타낸다고 표현한다. 불순도는 높게 나올수록 방이 어지럽다는 뜻이고, 분류가 이뤄지지 않았다고 이해할수있으며, 지표로는 지니계수(Gini Index)와, 엔트로피(Entropy)가 있다.

분류에서 정보이득이 최대가 된다면 부모 노드의 불순도와 자식 노드의 불순도의 차이가 최대임을 뜻하는데, 노드간의 불순도의 차이가 최대가 되어야 분류가 잘 이뤄졌음을 뜻하기 때문이다.

정보이득과 불순도
정보이득은 분류의 기준을 찾기 위한 노드 간의 불순도 차이이고,
불순도는 분류의 기준을 설정하기 위한 노드 내부의 수치이다.

회귀트리는 Target변수(Y)가 연속형 변수인 경우 사용하며, 잔차 제곱합(RSS)을 최소화 시킬 수 있는 방향으로 분류 기준을 만드는 방식이다. 분류 트리와 크게 다르지 않으며 예측값이 범주형이 아니기 때문에 예측한 구간내의 평균값으로 예측값을 계산한다. 회귀트리를 회귀분석과 혼동 할 수 있는데, 회귀트리는 회귀 함수를 기반으로 하지 않고 트리 기반으로 예측을 진행하기 때문에 트리구조로 데이터를 구간화 시킨 후 나뉜 구간별로 회귀분석을 시행하는 방식이라 생각한다.


decisiontree4

위의 그림은 동일한 데이터를 각각 결정 트리와 서포트 벡터 머신(SVM)으로 분류를 진행한 결과이다. 두 분류 모델의 가장 큰 차이점을 결정 경계(Decision Boundary)로 확인 가능하다. 결정 트리는 재귀적 분기 방식으로 한번에 하나의 특성(Feature)만 고려하여 분류를 진행하기 때문에 결정 경계가 모두 수직을 이루고 있으며, 서포트 벡터 머신은 모든 특성을 고려하여 초평면을 찾고 분류를 진행하기 때문에 결정 경계가 곡선형태로 나타난다. 이러한 결정 트리의 분류는 일차원 방식이라 과적합이 발생하지 않을 것이라 생각 할 수도 있지만, 일차원 분류가 여러 번 시행되어 분류 횟수의 마지노선을 정해주지 않으면 과적합이 쉽게 발생하는 단점이 있다. (그림의 분류 경계만 보더라도 하나의 값을 분류하기 위해 모델이 과적합된 모습을 볼 수 있다) 그렇다면 결정 트리는 어떤 데이터의 분류에 적용하는 것이 효과적일까?
결정 트리는 독립변수와 종속변수 간의 관계가 비선형적인 관계를 나타낼때 좋은 모델을 만들 것이다. 독립변수의 값이 커질수록 결정 경계가 같이 변한다면 선형 형태의 분류가 적합하겠지만, 하나의 특성이 여러 구간으로 분리 된다면 단순한 비선형 형태의 분류인 결정 트리가 효과적일 것이다.

결론
  • 머신러닝의 기법인 결정 트리(Decision Tree)는 분리 규칙을 트리 구조로 만들어 모델 이해가 쉽다.
  • 분류트리는 정보이득(InformationGain)으로 데이터를 나누고 정보이득은 불순도(Impurity)를 통해 계산한다.
  • 결정 트리는 비선형적인 관계를 분류할때 효과적인 모델을 만든다.

댓글남기기