본문 바로가기
AI월드/⚙️AI BOOTCAMP_Section 2

결정트리,Decision Trees_Day26

by khalidpark 2021. 2. 4.

 

 

 

결정트리 classification의 결과는 카테고리형이 될수도 , 숫자형이 될수도 있다

 

좌측의 질문순서와 우측의 질문순서가 꼭 같을 필요 없다

(우측에 도넛먹는지 물어봤다고 좌측에 도넛먹는지 먼저 물어볼 필요 없다는 뜻)

 

 

 

 

Rood Node : The Root : 가장 상단의 시작점 (화살을 주기 시작하는 점)

Internal Nodes : Nodes : 중간 지점의 연결점 (화살을 받기도 하고 , 주기도 한다)

Leaf Nodes : Leaves : 가장 마지막의 최종점 ( 화살을 받기만 한다) = classification의 결과

 

 

 

 

(좌) 좌측에 주어진 데이터로 결정트리를 만들려고 한다. 어떤 조건이 가장 상단에 들어가야 하는가?

(우) 각 조건별 타겟값의 분포를 보면 어느하나 100%로 구분되는 상황이 없다 (모두 확률적으로 나뉘어있다)

이 상황을 impure (불순한) 이라 하고 , impurity(불순물) 비교를 통해 어떤 분류가 가장 최선인지 결정해야 한다

 

 

 

가장 유명하고 쉬운 방법이 "Gini"

1) 1 - (yes의 가능성)**2 - (no의가능성)**2

2) 좌측의 gini계수는 0.395 , 우측의 gini계수는 0.336 

총 gini계수는 좌측과 우측의 합인 0.731이 되어야 하나

좌측의 환자수와 우측의 환자수가 다르기 때문에 가중치를 적용한 뒤 총 gini계수를 구한다

 

 

 

각각의 특성값에 따른 Gini 계수를 모두 구해본 결과

0.360의 '혈액순환이 잘되는지' 항목이 가장 낮은 수치를 기록

해당 특성을 최상단 Root Node 에 두기로 한다

 

 

 

 

'Good blood circulation' 항목을 최상단에 두고 난뒤

나뉜 값을 기준으로 다시 'check pain'과 'blocked arteries'를 위에 방법과 동일하게 비교한다

 

(좌)

다음 항목인 chest pain 을 분류할때

좌측은 gini 계수 비교를 통해 chest pain 으로 다시 나누는게 더 좋지만

우측 13/102의 경우

체스트페인으로 나누면 gini 계수는 0.29

나누지않고 현재의 지니 계수는 0.2

즉 나누지않고 지금 13/102로 두는게 더 낮은 지니계수를 나타내므로 , 지금이 최종값

 

(우)

동일한 방법으로 gini 계수 비교를 통해 node 나누고

최종 leaf node 까지 동일한 방법으로 계산


랭크 데이터 또는 카테고리 데이터로 결정트리를 만드는 방법은 ?

출처 : youtu.be/7VeUPuFGJHk

 

728x90

댓글