brunch

You can make anything
by writing

C.S.Lewis

by HEARTCOUNT팀 Oct 15. 2021

집단을 구획하는 알고리즘, 의사결정나무

HEARTCOUNT로 타이타닉호 생존자, 사망자 분류규칙 만들기

안녕하세요? 하트카운트팀입니다.


오늘은 끼리끼리 집단을 분류하는 알고리즘, 의사결정나무에 대한 글을 준비했습니다.


하트카운트 무료 체험 계정을 통해, 의사결정나무를 활용하여 만든 KPI 최적화 규칙 찾기 '마이크로세그먼트'기능을 직접 이용해보실 수 있습니다.




하루키의 노르웨이의 숲에는 “세상에 당신을 이해하려고 애쓰는 일을 즐기는 사람이 한명쯤 있어도 나쁘지 않지 않나요?”라는 문장이 있다. 의사결정나무(decision tree)도 데이터에 담긴 규칙과 질서를 당신에게 이해시키려고 애쓰는 몇 안되는 알고리즘(white box model) 중 하나이다.




“So what’s wrong if there happens to be one guy in the world who enjoys trying to understand you?”
― Haruki Murakami, Norwegian Wood




이번 글에서는 데이터 공부한 사람이라면 한 번쯤은 들어 보았을 “titanic dataset” 으로 의사결정나무가 작동하는 방식과 모형(분석결과)을 해석하는 법을 살펴 보겠다.




의사결정나무

: 서로 다른 (두) 집단을 분류하는 규칙을 만드는 방법


장르적으로 의사결정나무는 서로 다른 집단을 분류하는 모형을 만드는 Classification 알고리즘이다. 아래 그림처럼 이차원의 평면에 분포된 늑대와 소를 분류하는 방법은



하나의 직선(맨 왼쪽 그림): 단순하지만 소와 늑대가 잘 구분이 안됨


구불구불한 곡선(맨 우측): 아주 잘 분류되지만, 분류된 규칙이 복잡하여 사람에게 일상의 언어로 설명하기 힘듬


직선으로 공간을 구획(가운데): 분류도 제법 잘 되고 분류된 모형(규칙)을 이해하기 쉬움(white box model)



의사결정나무는 아래 가운데 그림처럼 늑대는 늑대끼리, 송아지는 송아지끼리 모이도록 공간을 직선을 사용하여 구획하는 방식으로 작동한다.






의사결정나무

: 끼리끼리 모이도록 공간을 구획하는 방법


아래는 신입사원들을 성과점수 기준으로 상하위 20%로 구분하여, 두 집단을 구분하는 규칙을 만드는 예시이다. 예를 들어, 인적성 검사에서 측정한 인내력점수(Y축)와 대학시절 동아리활동을 한 기간(X축) 두 변수를 사용해서 두 집단을 구분한다고 가정해보자.


별은 별끼리 세모는 세모끼리, 동질적 객체(class)들이 순도 높게 분포하는 공간을 아래 그림처럼 구획하면, 제법 쓸만한 분류규칙을 만들 수 있겠다.






다만, 실제 데이터는 분류 규칙을 만드는데 사용해야 하는 변수가 많은데, 이들 중 가능한 적은 변수들을 사용해서 최적의 분류규칙을 만드는 작업을 의사결정나무 알고리즘이 대신 해줄 수 있다.


또한, 의사결정트리 모형을 통해 설명 변수 간 상호작용을 이해할 수 있다는 장점이 있다. (동아리 경험이 0.8년 이상이고 동시에 인내력이 74점 이상인 경우 대부분 일을 곧잘 하더라…)




HEARTCOUNT로 타이타닉호 생존자, 사망자 분류규칙 만들기


우선 타이타닉 데이터셋은 아래처럼 구성되어 있다. 주요 변수를 살펴보면 아래와 같다.



survival: 생존/사망 여부를 표시하는 변수


pclass: 몇등석을 탔는지 표시하는 변수


sex, age: 성별, 나이



타이타닉 데이터셋: https://www.kaggle.com/c/titanic

HEARTCOUNT 무료 버전 바로 시작하기: https://www.heartcount.io





하트카운트의 마이크로 세그멘트 기능을 통해 의사결정나무 알고리즘을 사용하여 생존자와 사망자를 분류한 동영상이다.


목표변수를 “Survived”로 선택한 후 [분석] 버튼을 누르면 생존자(1)와 사망자(0)를 구분하는 모형을 생성해 준다.


분석결과를 트리형태로 살펴보면 (녹색이 생존자, 파랑색이 사망자)


여자(female) 경우, 생존률(survived=1인 비율)이 74.2%였고


여자이며 동시에 1,2등석에 탑승한 경우(pclass < 2.5)의 생존률이 94.7%


반면, 남자(male)인 경우는 6세 이하인 경우 생존률이 66.6%로 높았다.




아래는, 생존자(1) 분류규칙 테이블과 특정 규칙(여자이고 1/2등석 탑승)을 다른 방식으로 시각화한 화면이다.




실무자를 위한 데이터 자동 분석 솔루션, 하트카운트
지금 사용해보기


하트카운트 뉴스레터 구독하기는 여기를 클릭해주세요.

하트카운트 도입, 견적 및 구축 문의는 여기를 클릭해주세요.
(협업 문의는 support@idk2.co.kr로 부탁드립니다.)

하트카운트 데모 비디오는 여기를 클릭해주세요.

여기를 클릭하여 데이터 분석/시각화 커뮤니티 '데이터 히어로'에 참여하세요.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari