본문 바로가기

머신러닝(ML)

의사결정 나무(Decision Tree)란...

의사결정 나무( Decision Tree )란...

데이터의 속성을 분석하여 데이터간 존재하는 패턴을 예측 가능한 규칙들의 조합으로 나타내며, 그 모양이 ‘나무’와 같다고 해서 의사결정나무라 불린다. 즉, 데이터들의 속성으로부터 패턴을 찾아 분류하는 모델이다. 그냥 쉽게 스무고개쯤이라 생각하자.

 

결정 트리를 일반화 하면 다음과 같다.

결정트리 일반화

사각형 terminal node에 속하는 데이터의 총 합은 root node의 데이터수와 같다. 즉, 2개 이상의 terminal node에 속하는 데이터는 없다는 뜻이다.

 

터미널 노드에 데이터가 잘 분리되기 위해서 잘 설계 된 질문지가 필요하다. 좋은 질문에 좋은 답이 있다. 질문이 잘못 되면 의도와 다른 답이 오기 마련이다. 잘 설계 된 질문지를 위해 고려해야 할 개념들을 알아보자.

 

지니 불순도( Gini Impurity )

지니 불순도란 다른 성질의 데이터가 얼마나 섞어 있는지를 보여주는 지표 값이다.

계산 방식은 간단하다. 1에서 ‘전체 데이터 개수 중 각 레이블이 차지하는 개수의 비율’을 제곱해서 빼주면 된다.

A = 1 - ( 8/8 ) = 0
C = 1 - ( 8/8 ) = 0

B = 1 - ( (4/8)2 + (4/8)2 ) = 0.5

 

좋은 질문에 의해 분류된 데이터는 지니 불순도 값이 작다는 걸 알 수 있다.

 

정보 획득량( Information Gain )

정보 획득량이란...

어떤 사건이 얼마큼의 정보를 줄 수 있는지에 대한 수치적인 표현이다. 아래는 지니 불순도를 보여주고 있다.  어떤 사건에 의해 0.5의 불순도에서 0, 0.444, 0의 단계로 변화 시켰다. 사건이 얼마만큼의 정보를 주는지 정보 획득량을 다음과 같다.

 

Information Gain = 0.5 – (0 + 0.32 + 0) = 0.18

 

간단하다 이전 단계 불순도에서 현 단계의 불순도 합을 빼주는 거다. 즉, 불순도가 작은 상태로의 변화는 정보 획득량의 증가를 뜻한다. 불순도의 변화만으로 정보 획득량을 설명하기 부족한 측면이 있다. 그래서 가중치(weight)를 적용하기도 한다.

 

Weighted Information Gain

가중치는 쉽게 비율만으론 부족하니 양의 개념을 적용한 것이다. 불순도가 파란 구슬이 100개나 1개나 동일하게 0이다. 뭔가 좀 불공정하다. 그래서 가중치를 적용하는 것이다.

계산은 간단하다.

Information Gain = 0.5 – ((4/10)*0 + (5/10)*0.32 + (1/10)*0) = 0.34

 

재귀적분귀( Recursive Partitioning )

...

가지치기( Pruning )

...