데이터 분석/머신러닝

결정트리모델(Decision Tree Model)

Aytekin 2021. 12. 16. 19:35
728x90

이번 블로그는 머신러닝 모델에 가장 많이 언급되고 사용되는 결정트리모델에 대해서 알아보겠습니다.

 


 

<개념>

누구나 어렸을 때 스무고개놀이를 해보셨으리라 생각합니다.

결정트리 모델은 스무고개를 통해서 정답을 추론하는 것과 비슷한 방법으로 데이터를 분류하거나 수치를 추론(회귀)하는 모델입니다.

 

예를 들어 "개/참새/오징어/고래" 이렇게 4가지를 분류하는 문제가 있다고 생각해봅시다.

'물에 사는 동물인가요?'라는 질문으로 [개,참새] / [오징어/고래]로 나눌수가 있습니다.

다시 '날 수 있는 동물인가요?'라는 질문으로 개와 참새를 구분할 수 있고

'다리가 10개인가요?'라는 질문으로 오징어와 고래를 구분할 수 있습니다.

 

이렇게 어떤 기준을 잡아서 데이터들을 구분하는 모델을 결정트리(Decision Tree)모델이라고 합니다.

 

<용어>

위에서 설명한 결정트리모델을 그림으로 살펴보면서 용어도 함께 알아보겠습니다.

간단한 결정트리모델

이렇게 질문들을 통해서 데이터가 어느 분류에 속하는지 구분할 수 있습니다.

 

각 질문들을 노드(Node)라고 부르며

제일 위에 있는 질문을 뿌리노드(Root node) 중간에 있는 노드들은 중간노드(Intermediate Node) 마지막 노드를 끝노드(Terminal Node of leaf node)라고 부릅니다.

 

그림이 마치 나무를 뒤집어 놓은것과 같이 생겨서 Tree라는 이름이 붙은것이라고 생각하면 될 것 같습니다.

<학습하는 방법>

결정트리모델이 어떤것인지 간단하게 알아보았으니 이제는 이 모델이 어떻게 학습하는지 알아보도록 하겠습니다.

 

불순도 Impurity 

학습하는 방법에 대해서 알아보려면 불순도라는 개념을 먼저 알아야 합니다.

불순도(inpurity)란 쉽게 이해하면 얼마나 데이터가 잘 분류되어 있는지를 의미하는 겁니다.

 

예를 들어

1번 주머니 : 파란공만 9개

2번 주머니 : 파란공 6개 빨간공 3개

3번 주머니 : 파란공 4개 빨간공 5개

어느 주머니의 불순도가 가장 낮을까?

당연히 파란공만 포함되어 있는 주머니가 순도가 100%이니깐 불순도가 가장 낮고 빨간공이 3개 있는 주머니가 그다음으로 불순도가 낮고 빨간공이 5개인 주머니는 가장 불순도가 높을 것이다.

 

결정트리 모델은 바로 이 불순도를 낮추는 방향으로 학습해나간다고 생각하면 된다.

 <지니 vs 엔트로피>

그렇다면 '불순도'라는 것을 어떻게 낮출것이며 그 전에 불순도라는 개념을 어떻게 측정할 것인가?

 

바로 불순도를 측정하는 지표로서 지니 불순도(Gini impurity) 엔트로피(Entropy) 개념이 나타난다.

두 지표 모두 불순도를 측정하는 지표라는 점에서는 같지만 계산하는 공식이 다르고 그에 따른 특징들도 있으니 간단하게라도 알아두면 좋을 것 같습니다.

 

  • 지니불순도(Gini impurity)
measures how often a randomly chosen element from the set would be incorrectly labeled - 위키피디아

위키피디아 공식문서를 보면 지니불순도를 정답이 아닌 다른 라벨이 뽑힐 확률이라고 정의합니다.

지니불순도 공식

위에서 제시한 예시들의 지니불순도를 구해보면서 이해해봅시다.

각각 지니불순도 0, 4/9, 40/81로 불순도가 점점 커지는 것을 확인할 수 있습니다.

  • 엔트로피(Entropy)

엔트로피 공식

엔트로피 불순도 역시 지니불순도와 똑같이 크기가 커질수록 불순도가 크다는 의미입니다.

지니 불순도와 차이점은 로그계산이 포함되어 있어서 연산이 더 무겁고 느리다는 것이 특징입니다.

당연히 연산과정이 더 복잡한 로그를 사용함으로서 얻어지는 이점이 있다고 하지만 여기서는 다루지 않겠습니다.

  • 지니 vs 엔트로피

1. 지니 불순도가 엔트로피 불순도보다 계산속도가 더 빠릅니다. 엔트로피의 연산이 더 무거우니 당연한 결과입니다.

2. 보통의 경우 지니 불순도보다 엔트로피 불순도의 성능이 더 좋다고 알려져 있습니다. 그러나 이 성능도 크게 차이난다고 단언하기는 힘들고 언제나 그렇듯 모든 상황에서 좋은 성능을 내지는 않습니다.

 

< 결정트리 모델의 단점 >

결정트리 모델의 가장 큰 단점은 과적합(overfitting)이다.

트리의 깊이가 깊어짐에 따라서 훈련데이터에는 잘 구분하지만 새로운 데이터를 보았을때는 성능이 떨어지고 일반화가 잘 안된다는 단점이 있습니다.

가지치기(pruning)을 통해서 트리의 깊이를 설정할 수 있지만 충분하지 않습니다.

 

이를 보완하기 위해서는 앙상블모델인 랜덤포레스트(Random Forest Model)을 사용해볼 수 있습니다.

랜덤포레스트 모델은 다음 블로그에서 정리해보도록 하겠습니다.

 


 

여기까지 결정트리의 간단한 개념과 학습시 사용되는 불순도에 대해서 알아보았습니다.

 

더 자세하게 결정트리를 어떻게 만들수 있는지 보고싶으면 아래 링크를 참고해서 보시면 되겠습니다.

지니불순도를 통해서 어떻게 뿌리부터 마지막 말단 노드까지 구성하는지 단계별로 살펴볼 수 있습니다.

https://www.youtube.com/watch?v=7VeUPuFGJHk 

읽어주셔서 감사합니다!

 

728x90

'데이터 분석 > 머신러닝' 카테고리의 다른 글

랜덤포레스트 모델(Random Forest Model)  (0) 2021.12.16