여러가지공부/머신러닝(Machine Learning)

[Classification] Decision Tree 예제 설명 #1 (Gini Impurity)

끄적끄적아무거나 2023. 5. 2. 08:54
반응형

 

목차

     

     

     

     

    Decision Tree란?

     

    그림1

     

    Decision Tree란 위 그림과 같이 배고픔 Statement을 통해서 Decision을 진행합니다. 이때 Statement의 True와 False에 따라 다음 행동을 결정합니다.

     

    • Statement
    • True / False

     

     

    위와 같이 Decision Tree의 결과가 카테고리로 결정 되면 Classification Tree라고 합니다. 결과가 밥을 몇 그릇 먹을지와 같은 숫자의 형태의 경우 이를 Regression Tree라고 합니다.

     

    • Classification Tree
    • Regression Tree

     

    결과를 카테고리와 숫자를 섞은 형태의 Tree 사용도 상관 없습니다

    그림2

    위와 같은 트리의 특징은 아래와 같습니다. 

     

    1. Numeric Threhold는 다르게 설정 가능

    2. 카테고리 결과는 반복적으로 사용 가능

    3. True는 왼쪽으로 False는 오른쪽으로 설정

     

     

     

     

    그림2와 같이 "굶기>1시간" 는 가장 높은 노드로 Root Node(The Root)라고 부릅니다. 그 외에 파란색 노드들을 Internal Nodes(Branch)라고 부릅니다. 그리고 녹색 노드들을 Leaf Node(Leave)라고 부릅니다.

     

    • Root Node(The Root)
    • Internal Nodes(Branch)
    • Leaf Node(Leave)

     

     

     

     

     

    Decision Tree : Gini Impurity 예제로 알아보기

     

    테이블1

    위 테이블1과 같이 햄버거나 피자를 1주일에 한번 이상 먹을 경우를 Yes, No로 표기하고 나이는 숫자(Numeric Data)로 입력된 값을 통해 고지혈증 유무를 알아보는 Tree를 만들려고 합니다. 

     

    Root Node부터 Branch, Leaf Node를 결정하는 방법을 알아보겠습니다. 

     

     

     

    그림3과 같이 채소와 피자에 따른 고지혈증의 결과를 나타내는 트리를 만들어 봅니다. 

    그림3

     

    피자의 False 결과를 제외하고는 모두 고지혈증인지를 명확히 알려주지 않습니다. 이를 Impurity라고 합니다. Impurity 정도를 계산하는 여러가지 방법이 있는데 가장 많이 사용하는 지니 불순도(Gini Impurity)에 대해 알아보겠습니다. 

     

    수식1

    지니 불순도 수식은 위와 같습니다. Yes나 No로 결과가 치우치면 지니 불순도는 0이 되어 불순도가 없다는 의미가 됩니다. 둘이 균일하게 0.5씩 분포되면 지니 불순도는 0.5가 되어 높은 불순도를 가지고 있음을 알수 있습니다.

     

    채소의 True 값의 지니 불순도(Gini Impurity)는 아래와 같이 구할 수 있습니다.

     

    위와 같이 지니 불순도를 구하면 아래와 같습니다.

     

    • 채소 True : 0.375
    • 채소 False : 0.444

     

     

    여기서 채소 True의 고지혈증 전체 수와 채소 False의 고지혈증 전체 수가 동일하지 않습니다. 이를 Weight의 개념으로 채소에 대한 지니 불순도를 구할 수 있습니다. 수식은 아래와 같습니다.

     

    즉, 채소 True의 개수가 더 많으므로 Impurity 계산할 때 해당 비율을 높여줍니다.

     

    전체 채소의 Gini Impurity는 0.405가 나옵니다. 동일 방식으로 피자에 대해 대한 불순도를 계산하면 아래와 같습니다.

     

    • 채소의 지니 불순도: 0.405
    • 피자의 지니 불순도: 0.214

     

     

    다음 포스트에서는 Age에 대한 지니 불순도를 구하고 Tree를 구하는 방식에 대해 알아보겠습니다.

    반응형