결정 트리(Decision tree)
- 어떤 결정에 다다르기 위해 예/아니오 질문을 이어 나가며 학습하는 모델
- 분류와 회귀에 모두 사용
- 다양한 앙상블(혼합형) 모델이 존재
| -타이타닉 결정트리 |
결정 트리에서 완전한 결정에 다다르기까지 불순도(불확실성)를 갖는다.
이때의 불순도를 나타내는 정도를 지니 불순도(Gini impurity)라 한다.
-완전히 분리된 지니 불순도의 경우 0, 반반씩 섞인 경우는 0.5로 계산됨
->0.5가 지니 불순도의 최대값
지니 불순도 이외로 엔트로피(Entropy) 불순도가 존재
- entropy 가 성능 면에서는 우월(좀 더 엄격한 기준)
- Gini 는 속도 면에서 우월(entropy 는 log 계산으로 속도나 느림)
결정 트리의 특징
- 타깃 값(결정 값)이 한 개인 리프 노드를 순수 노드라고 한다.
- 모든 노드가 순수 노드가 될 때 까지 학습하면 복잡해지고 과대적합이 됨
-> 오히려 적은 양의 트리는 과소적합이 됨
- 새로운 데이터 포인트가 들어오면 해당하는 노드를 탐색하되 분류와 회귀일 때의 유형이 달라짐
-> 분류 : 더 많은 클래스에 대해 선택 연산
-> 회귀 : 평균 연산
결정 트리의 과대적합 제어
- 결정 트리 생성 중 노드의 수가 과할 경우, 과대 적합의 영향을 받을 가능성이 있다.
- 과대 적합은 노드 생성을 미리 중단하는 사전 가지치기(Pre-pruning)와 트리를 만든 후 크기가 작은 노드를 삭제하는 사후 가지치기(Pruning)가 있다.
- 트리의 최대 깊이나 리프 노드의 최대 개수를 제어
- 노드가 분할 하기 위한 데이터 포인트의 최소 개수를 지정
※sk-learn은 사전 가지치기만 지원한다.
결정트리의 장단점
장점
- 만들어진 모델의 시각화가 쉬워 이해하기 쉽다.
- 각 특성이 개별처리되어 데이터 스케일의 영향을 받지 않아 특성의 정규화나 표준화의 필요가 없다.
- 트리 구성 시 각 특성의 중요도를 계산하기 때문에 특성 선택(Feature selection)에 활용될 수 있다.
단점
- 훈련 데이처 범위 밖의 포인트의 예측은 불가(시계열 데이터 등)
- 가지치기를 사용함에도 불구하고 과대 적합여지가 존재함
댓글
댓글 쓰기