ML&DL&AI/ML

ML Decision Tree

Hoon0211 2023. 8. 14. 10:00
728x90

1. Decision Tree 란

  • 스무고개 하듯이 예/아니오 질문을 반복하는 학습
  • 특정 기준(질문)에 따라 데이터를 구분하는 모델
  • 분류와 회귀에 모두 사용 가능

 

 

- 의사 결정 방향

  • 불순도가 낮아지는 방향
  • 불순도란?
    • 정보 이론에서 얻을 수 있는 정보량의 정도를 뜻함.
    • 하나의 범주 안에 여러종류의 데이터가 속해있으면 불순도가 높아진다.
    • 데이터를 분기할 때 현재 노드보다 자식 노드의 불순도가 감소되도록 분기를 해야 된다.

 

 

- Root Node, Decision Node, Leaf Node, depth, Sub Tree

  • Root Node : 최상위 노드
  • Decision : 결정 노드 (사각형의 모양)
  • Leaf Node : 자식이 없는 노드, 단말 노드
  • Depth : 자신을 제외한 조상의 노드의 개수
  • Sub tree : 하나의 트리를 구성하는 왼쪽과 오른쪽의 작은 트리

 

 

 

- 불순도 측정 방법

  • 지니 불순도
  • 지니 계수 
    • 해당 구역 안에서 특정 클래스에 속하는 데이터의 비율을 모두 제외한 값
    • 다양성을 계산하는 방법
       
  • 지니 불순도
    • 낮을 수록 좋은 것이다.

 

 

 

2. Decision Tree 사용 방법

  • Decision Tree 사용법
# 필요한 라이브러리 호출
from sklearn.tree import DecisionTreeClassifier
clf = DecisionTreeClassifier(하이퍼 파라미터, random_state)

 

  • 주요 매개 변수(hyperparameter)
    • criterion : 불손도 측정 방법(gini, entropy)
    • max_depth : 트리의 최대 깊이
    • min_samples_split : 노드를 분할하기 위한 최소 샘플 수
    • min_samples_leaf : 리프 노드가 가져야할 최소 샘플 수
    • max_leaf_nodes : 리프 노드의 최대 개수
DecisionTreeClassifier(criterion, max_depth, min_samples_split, min_samples_leaf, max_leaf_nodes)

 

 

- 과대 적합 제어

  • max_depth : 트리의 최대 깊이
    값이 클수록 모델 복잡도가 올라간다.
  • max_leaf_nodes : 리프노드의 최대 가수 
    크게 설정될수록 분할되는 노드가 많아져서 과대적합 가능성 증가
  • min_samples_split: 노드를 분할하기 위한 최소 샘플 수
    작게 설정될수록 분할 되는 노드가 많아져서 과대 적합 가능성 증가
  • min_samples_leaf : 리프 노드가 가져야할 최소 샘플수
    작게 설정될수록 분할되는 노드가 많아져서 과대적합 가능성 증가

 

 

 

3. Decision Tree 사전 가지치기

  • 일반적으로 가지치기 개수 : 3 ~ 5개
  • min_samples_split

 

 

 

4. Decision Tree 장단점

  • 장점
    • 쉽다
    • 직관적이다
       
  • 단점
    • 과대적합이 발생이 쉬움
    • 이를 극복하기 위해서 트리의 크기를 사전에 제한하는 튜닝이 필요하다(사전 가지치기)
728x90