[머신러닝]결정 트리(Decision tree)

 결정 트리(Decision tree)

- 어떤 결정에 다다르기 위해 예/아니오 질문을 이어 나가며 학습하는 모델

- 분류와 회귀에 모두 사용

- 다양한 앙상블(혼합형) 모델이 존재

-타이타닉 결정트리


결정 트리에서 완전한 결정에 다다르기까지 불순도(불확실성)를 갖는다.

이때의 불순도를 나타내는 정도를 지니 불순도(Gini impurity)라 한다. 


-완전히 분리된 지니 불순도의 경우 0, 반반씩 섞인 경우는 0.5로 계산됨

  ->0.5가 지니 불순도의 최대값


지니 불순도 이외로 엔트로피(Entropy) 불순도가 존재

- entropy 가 성능 면에서는 우월(좀 더 엄격한 기준)

- Gini 는 속도 면에서 우월(entropy 는 log 계산으로 속도나 느림)


결정 트리의 특징

- 타깃 값(결정 값)이 한 개인 리프 노드를 순수 노드라고 한다.

- 모든 노드가 순수 노드가 될 때 까지 학습하면 복잡해지고 과대적합이 됨

   -> 오히려 적은 양의 트리는 과소적합이 됨

- 새로운 데이터 포인트가 들어오면 해당하는 노드를 탐색하되 분류와 회귀일 때의 유형이 달라짐

   -> 분류 : 더 많은 클래스에 대해 선택 연산

   -> 회귀 : 평균 연산


결정 트리의 과대적합 제어

- 결정 트리 생성 중 노드의 수가 과할 경우, 과대 적합의 영향을 받을 가능성이 있다.

- 과대 적합은 노드 생성을 미리 중단하는 사전 가지치기(Pre-pruning)와 트리를 만든 후 크기가 작은 노드를 삭제하는 사후 가지치기(Pruning)가 있다.

- 트리의 최대 깊이나 리프 노드의 최대 개수를 제어

- 노드가 분할 하기 위한 데이터 포인트의 최소 개수를 지정

※sk-learn은 사전 가지치기만 지원한다.


결정트리의 장단점

장점

- 만들어진 모델의 시각화가 쉬워 이해하기 쉽다.

- 각 특성이 개별처리되어 데이터 스케일의 영향을 받지 않아 특성의 정규화나 표준화의 필요가 없다.

- 트리 구성 시 각 특성의 중요도를 계산하기 때문에 특성 선택(Feature selection)에 활용될 수 있다.


단점

- 훈련 데이처 범위 밖의 포인트의 예측은 불가(시계열 데이터 등)

- 가지치기를 사용함에도 불구하고 과대 적합여지가 존재함

댓글