-
ML Decision TreeML&DL&AI/ML 2023. 8. 14. 10:00728x90
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