brunch

You can make anything
by writing

C.S.Lewis

by 코딩하는 수학쌤 Jul 19. 2021

26. 결정 트리를 통해 살펴보는 머신 러닝-1

[4악장 - Cadenza] 머신러닝의 알고리즘과 수학

결정 트리(Decision Tree)란?

 결정 트리는 다양한 속성으로 구분되어 있는 데이터를 Yes/No의 질문을 바탕으로 분류하는 방법입니다. 마치 스무고개를 하듯 예, 아니오에 따라 데이터를 나누어볼 수 있습니다.



 예를 들어서 독수리, 펭귄, 토끼, 사자 네 종류의 동물을 분류하려고 해 볼게요. 그렇다면 이 동물들을 나누기 위해 “날개가 있나요?”라고 질문을 할 수 있겠죠? 첫 질문에 따라 독수리와 펭귄이 날개가 있는 동물로 분류가 되었고, 토끼와 사자가 날개가 없는 동물로 분류가 되었습니다. 뒤 이어 독수리와 펭귄을 나누기 위한 질문으로 “날 수 있나요?”라고 질문을 할 수 있습니다. 토끼와 사자를 구분하기 위해서는 사자의 특징인 “갈기가 있나요?”라는 질문으로 분류를 할 수 있겠죠.



 앞의 그림을 거꾸로 엎어보면 오른쪽의 그림처럼 줄기에서 줄기가 계속 나와있는 나무처럼 생긴 것을 알 수 있습니다. 이 때문에 ‘결정 트리’라는 이름이 붙어 있습니다. 결정 트리는 데이터를 쉽게 시각화할 수 있고 구분 기준이 쉽게 보이기 때문에 정리하기가 용이합니다. 어떻게 구분되는지를 알 수 있기 때문에 매우 직관적인 장점이 있니다.




결정 트리의 핵심 = 질문의 순서

 결정 트리에서는 질문의 순서를 정하는 것이 무척 중요합니다. 예를 들어서 아래의 예시와 같이 날씨, 온도, 습도, 바람에 대한 데이터가 있고, 이를 바탕으로 운동을 할지, 하지 않을지 결정하는 결정 트리를 만든다고 가정해봅시다.


 데이터를 효율적으로 분류하기 위해서는 어떤 순서로 스무고개를 만들어야 할까요?  데이터가 그리 많지 않아서 질문의 순서에 따른 차이가 그리 크지 않을 것 같습니다. 하지만 데이터의 수가 아주 많다면 질문의 순서에 따라 성능에서 큰 차이가 날 수 있습니다. 별로 분류에 도움이 되지 않는 질문을 앞에서 한다면 절대로 성능이 좋은 모델이 될 수 없겠죠.


 따라서 결정 트리는 데이터를 다루는 통계를 활용해서 가장 최적의 질문 순서를 만들어내야 합니다. 이를 위해서 정보 이론의 일부를 살짝 살펴보도록 하겠습니다.




질문의 순서를 결정하는 정보량

 앞에서 결정 트리는 질문 순서를 어떻게 정하느냐가 중요하다고 했습니다. 간단하게 핸드폰에 관한 속성 몇 가지와 구매 희망 여부를 놓고 함께 질문의 중요도를 어떻게 정하는지 살펴보려고 합니다.


 예를 들어서 4가지 종류의 핸드폰이 있고, 각 핸드폰에 대해서 디자인, 성능, 가격에 대한 정보를 가진 데이터가 있습니다. 각 모델명에 대해 성능, 디자인, 가격 등을 데이터의 속성이라고 하고, 구매를 할 것인지 아닌지 여부가 이 데이터의 레이블이 됩니다.



 그렇다면 결정 트리를 만들 때 어떠한 속성이 가장 큰 영향을 미칠까요? 모델명을 제외하고 각 속성을 하나씩 분리하여 구매 의사와 한 번 비교를 해보면 ‘디자인’이라는 속성이 가장 큰 영향을 주는 것을 직관적으로 알 수 있습니다.


 그런데 이러한 데이터가 많아질 때는 이런 직관으로 문제를 해결할 수 없습니다. 데이터 양이 많기도 하고, 정확하게 하나씩 매칭이 되지 않는 경우도 많이 있습니다. 따라서 각 속성이 얼마나 구매의사에 영향을 주는지 산출할 수 있는 수치화된 방법이 필요합니다. 바로 ‘정보량’이라는 개념입니다.


 정보량은 쉽게 정리하자면 ‘몰랐던 것들에 대한 놀라움의 정도’라고 할 수 있습니다. 우리가 뻔히 예상할 수 있는 일들보다는 전혀 예상치 못했던 사실을 접했을 때 더 많은 정보를 전달받았다고 할 수 있습니다. 매일 집에서 먹는 밑반찬에 대한 정보량은 작지만 모처럼 하는 외식의 메뉴를 접하는 경우 더 많은 정보량을 지닌다고 할 수 있죠.


 그렇다면 우리가 살펴보는 위의 데이터에서 디자인은 적중을 모두 했고, 성능은 3개를, 가격은 그것보다 적은 2개를 맞췄습니다. 좀 더 자세히 살펴보면 각 속성에서도 O, X에 따라 적중된 정도가 차이가 있죠? 따라서 각 속성의 O, X에 따라 정보량을 산출해야 합니다. 이를 수치화하기 위해서는 ‘엔트로피’라고 하는 개념이 필요합니다.


다음 글에서 엔트로피의 개념과 함께 운동 여부를 분류하는 결정 트리가 만들어지는 과정을 살펴보겠습니다.





매거진의 이전글 25. 인공지능에서 사용하는 다양한 알고리즘
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari