트리 구조 모델을 이용한 감독 세분화


속성 선택이 매우 중요하긴 하지만 속성을 선택하는 것이 전부는 아닙니다. 만약 정보량을 증가시키는 속성이 하나가 아니라 여러 개 존재한다면 이 속성들을 어떻게 결합해야 할 지 판단하기 쉽지 않습니다. 이럴 때는 중요한 속성을 골라내기 위해 개발한 방법을 활용한 다변량 감독 세분화 방법인 트리구조화 방법을 이용합니다.

출처:Data Science for Business


트리는 내부노드(Internal node)와 단말노드(Teminal node)로 나눠지며, 내부노드에서 가지가 뻗어 나옵니다. 트리구조는 모든 데이터가 트리에서 단 하나의 경로를 따라 결국 단 하나의 단말노드에 도착하도록 데이터를 분할합니다. 달리 말하면, 단말노드는 하나의 세그먼트(segment)이고, 여기에 도착하는 경우의 값은 세그먼트의 특성을 나타냅니다. 그리고 분류에 대해 설명하고 있으므로 각 단말 노드는 세분화한 그룹을 담고 있으며, 이런 트리를 분류트리 또는 결정트리라고 부릅니다.


데이터에서 분류트리를 만드는 방법


트리유도는 분할정복법을 이용합니다. 우선 전체 데이터 세트에서 속성을 기준으로 가장 순수한 하위그룹으로 분할하는 변수를 찾습니다. 그리고 이를 재귀적으로 반복하여 트리를 유도할 수 있습니다.


확률 추정


트리의 단말 노드에 있는 모든 객체에 동일한 계층확률을 부여해도 된다면 단말노드에 있는 객체의 수를 이용해 계층 확률 추정치를 계산할 수 있습니다. 예를 들어 단말노드에 n개의 긍정적인 객체와 m개의 부정적인 객체가 있다면 새로 세그먼트로 분류된 객체가 이 계층에 속할 확률은 입니다. 이렇게 확률을 계산하는 방법을 빈도기반 계층확률추정이라고 합니다. 그러나 객체 수가 적을 때는 난관적인 결과(과적합화(overfitting))를 초래할 수도 있습니다. 이럴 경우에는 단순히 빈도를 계산하는 대신 빈도를 완충시킬 수 있는 라플라스 교정법을 사용해서 아래와 같은 식으로 바꿔줍니다.

(n은 단말노드, c는 계층에 속하는 객체의 수, m은 c객체에 속하지 않는 객체의 수)


트리유도로 고객이탈 문제 해결하기


분류트리를 만들기 전 '고객이탈을 예측하는 데 변수들의 중요성'을 알기 위해 각 속성의 정보증가량(IG)을 측정합니다.

(IG에 대한 설명 참고 - 2017/03/25 - [Cyong's 마케팅/Data Science] - [Data Science] Ch1. 예측모델링_정보전달하는 속성 찾아내기)

그리고 IG의 순위로 정렬한 속성데이터를 차례로 노드로 트리를 만듭니다. 하지만 루트노드를 제외한 모든 노드 변수는 전체 객체 집합이 아니라 상위노드에 의해 분류된 객체만을 평가하기 때문에 내부노드의 정보증가량 순위와 전체집합의 정보증가량은 다를 수 있습니다.(대게 같지 않습니다.)

+ Recent posts