ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ML Decision Tree
    ML&DL&AI/ML 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

    'ML&DL&AI > ML' 카테고리의 다른 글

    ML AdaBoost(Adaptive Boosting)  (0) 2023.08.16
    앙상블(Ensemble) 모델  (0) 2023.08.16
    KNN 실습 - 붓꽃(iris) 품종 구분하기  (0) 2023.08.09
    ML KNN(최근접 이웃 알고리즘)란  (0) 2023.08.08
    머신러닝 7과정 실습  (0) 2023.08.04
Designed by Tistory.