소개
Decision Tree(결정 트리)는 지도 학습에서 분류 및 회귀에 사용되는 모델 중 하나로 불순도가 낮아지는 방향으로 가지를 계속해서 분할해 나가는 알고리즘. ML 알고리즘 중에서 가장 직관적인 알고리즘
특징
- 쉽게 이해할 수 있고 해석이 간편하다.
- 별도의 처리과정 없이 쉽게 사용이 가능하다.
- RandomForest, Gradinet Boost, XGBoost 등 여러 ML 모델의 기반 알고리즘
불순도
불순도란 다양한 요소들이 섞여있는 정도를 의미. 대표적인 불순도 척도로 지니 계수와 엔트로피가 주로 사용
- 지니 계수
지니 계수란 경제적 불평등을 나타내던 용어로 0에 가까울 수록 평등하고 1에 가까울 수록 불평등을 나타낸다. 의사결정트리에서의 지니계수는 이와 약간 달리 0.5값을 가질 때를 가장 불순도가 높다고 판단하며 지니계수가 0에 근접하도록 분할을 진행한다.
<지니계수를 구하는 공식>
- 엔트로피
엔트로피란 정보이득을 나타내는 지표로 순도가 높을 때 얻는 정보이득이 크며, 반대로 불순도가 높을수록 얻는 정보이득은 작다. 지니 계수와 마찬가지로 엔트로피가 0에 가까울수록 좋으며 불순도가 낮아진다는 의미로 해석할 수 있다.
<엔트로피를 구하는 공식>
불순도를 줄여나가는 과정
Decision Tree 알고리즘 유형
- ID3
반복적으로 이분하는 알고리즘. 불순도로 엔트로피를 사용하며 독립변수가 범주형일 때만 사용가능. 연속형 독립변수 사용 불가. - C4.5
ID3의 단점을 보완한 알고리즘. 연속형 독립변수도 사용 가능 - CART (Classification And Regression Tree)
가장 널리 사용되는 알고리즘. 분류 및 회귀 문제에서 사용 가능하며 분류 문제의 경우 불순도로 지니계수를, 회귀 문제의 경우 불순도로 분산을 사용하여 분류한다. - Chi-square (Chi-square automatic interaction detection)
CART 알고리즘과 마찬가지로 분류 및 회귀 문제에서 사용 가능. 위에서 언급한 알고리즘과 달리 분류 문제의 경우 불순도로 카이제곱 검정값을, 회귀 문제의 경우 F 검정값으로 다지 분할을 진행한다.
Decision Tree Parameter
- min_sample_split
노드 분할을 위한 최소 샘플 데이터의 수 - min_samples_leaf
말단 노드가 되기 위한 최소한의 샘플 수 - max_features
최적의 분할을 위해 고려해야 할 특징들의 갯수 - max_depth
트리의 최대 깊이 - max_leaf_nodes
말단 노드의 최대 개수
Reference
[1] https://di-bigdata-study.tistory.com/2
[머신러닝 분류] Decision Tree / 의사결정트리
머신러닝을 접해본 사람들이라면 아마 한번쯤은 들어본 적이 있을거라고 생각되는 Decision Tree 알고리즘에 대해 다뤄보고자 한다. 학교수업을 통해서 여러번 배워본 적이 있지만, 항상 지나고 나
di-bigdata-study.tistory.com
[2] https://scikit-learn.org/stable/modules/tree.html
1.10. Decision Trees
Decision Trees (DTs) are a non-parametric supervised learning method used for classification and regression. The goal is to create a model that predicts the value of a target variable by learning s...
scikit-learn.org
[3] https://www.jcchouinard.com/decision-trees-in-machine-learning/
Decision Trees in Machine Learning, with Examples (Python) | JC Chouinard
Learn SEO, Web development and Machine Learning
www.jcchouinard.com
'데이터 분석 > 머신러닝' 카테고리의 다른 글
랜덤 포레스트 (Random Forest) (0) | 2022.10.02 |
---|---|
앙상블(Ensemble) (0) | 2022.10.02 |
유튜브 댓글 분석하기 (0) | 2022.06.15 |
[PySpark] 숙박업 분석 - (3) ML (0) | 2022.04.14 |
Numpy의 함수를 사용한 서바이벌 게임 (0) | 2022.02.24 |
댓글