본문 바로가기
ML | DL/머신러닝 이론|실습

결정트리(의사결정나무, Decision Tree)

by Leeys 2020. 10. 30.
반응형

*제가 이해한 내용을 정리한 것입니다. 틀린내용이 있으면 지적해주세요!

 

결정트리(Decision Tree)란?

- 일련의 질문에 대한 결정을 통해 데이터를 분해하는 모델, 분류 모델중에서 가장 간단한 알고리즘

 

결정트리의 목적은 정보이득 최대화 이다.

정보 이득(Information Gain)은 가장 정보가 풍부한 특성으로 노드를 나누기 위해 확인하는 정보의 획득 정보를 판별하는 지표이다.  다시 말해 이 노드를 나누는 것이, 분류에 도움이 되는가를 판별하는 지표

 

 

트리

 

의사결정트리의 '트리' 구조에 대하여 알아보자

그래프에서 보면 맨 위의 노드를 루트 노드(Root node)라고 하며,

그 아래 이어지는 선이 '가지' 이다. 'Can fly?'는 'Hawk', 'Penguin'의 부모노드이며

'Hawk', 'Penguin'은 'Can fly?'의 자식노드 이다. 그리고 최하위 노드를 리프노드(Leaf node)

불른다. 리프 노드가 아닌 자식 노드를 가지고 있는 노드를 내부 노드(Internal node)라고 한다. 리프 노드 중에서도 하나의 타겟 값만을 가지는 노드를 순수 노드(Pure node)라고 한다.

 

Binary DT에서 널리 사용되는 세 개의 불순도 지표

 

1. 지니 불순도(Gini impurity)

 

- 잘못된 확률을 최소화 하기위한 기준으로 이해 가능

- 클래스가 완벽히 섞여 있을 때 최대

 

2. 엔트로피(entropy)

 

- 한노드의 모든 샘플이 같은 클래스면, 엔트로피는 0이 됨

- 한 노드가 두 클래스를 동등하게 가지고 있으면 엔트로피는 1이 됨

- 지니 불순도와 엔트로피는 비슷한 결과를 보인다.

 

 

3. 분류오차(classification error)

 

- 엔트로피와 마찬가지로, 한 노드의 모든 샘플이 같은 클래스면 0, 두 클래스가 동등하면 0.5

- 노드의 클래스 확률 변화에 덜 민감하기 때문에, 가지치기에 주로 사용한다.

 

의사결정나무의 학습 방법은 입력값이 정답에 대하여 가장 많은 특성을 가지고 있는 것을

뽑는 것이다. 대부분의 실제 데이터는 yes/no 보다는 연속적인 특성을 갖고 있기 때문에

어느 값에 대한 특성이 특정한 값보다 큰가? 이런 식으로 노드를 나눈다.

깊이 내려갈수록 하나의 타겟값만 갖는 순수노드가 나올 확률이 높아지는데

이렇게 되면 '과대적합(overfitting)'이 될 가능성이 높아진다.

그래서 머신러닝을 학습할때 깊이(depth)를 데이터 특성에 맞게 조절해줘야 한다.

그 방법이 '사전 가지치기' 이다. 리프 노드의 최대갯수를 지정해주던가, 노드가 어디까지

분할할 것인지를 미리 정하는 것이다. 

반응형

댓글