본문 바로가기

🛠머신러닝

[머신러닝] 의사결정나무(Decision tree) -2 : CART(Classification And Regression Trees)와 지니지수(Gini index) 활용사례, 계산

반응형

5. 재귀적 분할 의사결정 알고리즘

의사결정나무에서 중요하게 알아야 할 것은 1) '어떻게 나무를 키울것인가?' 2) '불필요한 것들을 어떻게 쳐낼 것인가?'이다. 그중, 재귀적 분할 의사결정나무 알고리즘은  1)'어떻게 나무를 키울 것인가?'에 대한 내용에 해당한다. 즉 나무를 만드는 과정으로, 그 방법에는 CART, C4.5, CHAID가 있다. 또한 앞에서 정리한 내용처럼 의사결정나무에서 나무를 만들 때는 불순도가 줄어드는 방향으로 가지를 형성해나가야 하기 때문에 '불순도 알고리즘'에 대한 내용을 같이 엮어서 알아두어야 한다. 

 

* 불순도 알고리즘 :  의사결정나무를 만들어나갈 때 클래스를 정확하게 구분해줄 수 있는 분류기준을 찾는 것이 중요하다. 즉, 이 데이터를 어떤 기준으로 분류했을때 동일한 객체들로만 잘 모아지게 할 수 있을까?를 고려해서 분류기준을 찾는것이 중요한데, 이때 불순도 알고리즘을 사용하여 현재 집단에 어느 정도 다른 객체들이 섞여있는지 확인하고 불순도가 낮은 쪽으로 가지를 형성해나가게 된다.

 

 

 

 


📌 CART(Classification And Regression Trees)

CART는 가장 널리 사용되는 의사결정나무 알고리즘으로, 이름에서도 알 수 있듯이 분류와 회귀 나무에서 모두 사용할 수 있다. 불순도를 측정할 때 목표 변수(y)가 범주형인 경우 지니 지수를 사용하고, 연속형인 경우 분산을 사용하여 이진 분리를 한다.

 

➰ 지니지수(Gini index)

CART에서 사용하는 불순도 알고리즘인 지니 지수는 '불확실성'을 의미한다. 즉, 지니지수는 얼마나 불확실한가? (=얼마나 많은 것들이 섞여있는가?)를 보여준다. 따라서 지니 지수가 0이라는 것은 불확실성이 0이라는 것으로 같은 특성을 가진 객체들끼리 잘 모여있다는 의미이다.

 

지니지수 그래프

 

 

 

또한 지니지수는 통계학의 복원 추출 개념을 사용하기 때문에 식에 제곱이 들어간다. 한 번만 측정하는 것은 우연히 그 결과가 발생할 수 있기 때문에 최소한 두 번은 측정해봐야 정확하게 알 수 있다는 의미로 제곱을 해준다고 생각하면 된다. 어떤 집단에 한가지 특성을 가진 객체만 있을수록 그 집단을 한마디로 설명하기 좋다. 따라서 그룹 내에 있는 구성원들의 특성이 동일해질수록 지니 지수는 낮아지고, 다양한 구성원들이 섞여있을수록 지니 지수가 높아진다.

 

 

 

➰ 지니지수 예시

옷 쇼핑몰을 운영하고 있는 A 씨가 쇼핑몰 고객들 중, 충성고객(LC : loyal customer)과 이탈 고객(CC : churm customer)을 구분하는 규칙을 만들어서 이탈할 것으로 예상되는 고객들에게 이탈 방지를 위한 조치를 취하려 한다. 이때 총 10명의 고객을 대상으로 (성별 /  결혼 유무) 중 어느 조건(분류 기준)으로 나눠야 이탈 고객(빨간색)만 잘 분류할 수 있을지 알아보자.

 

 

〰️ '성별'을 기준으로 분류했을 때의 지니 지수 

 

 

 

 


 

〰️ '결혼 유무'를 기준으로 분류했을때의 지니지수 

 

 

 

❗️결론❗️

해당 집단을 '성별'에 따라 분류했을 때는 지니 지수가 0.5에서 0.167으로 감소했고, '결혼 유무'에 따라 분류했을때는 지니지수가 0.5에서 0.48로 감소했다. 따라서 이탈 고객(빨간색)을 파악하기 위해서는 '성별'에 따라 해당 집단을 분류하는 것이 좋다.

 

반응형