일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Linear Regression
- 딥러닝
- lol api
- Git
- 주피터노트북 커널 추가
- deeplearning
- 모두를 위한 딥러닝
- pandas
- 나는리뷰어다2021
- 주피터 노트북 테마
- Udacity
- Machine Learning
- ubuntu
- deep learning
- 주피터노트북
- Python
- overfitting
- feature scaling
- GitHub
- 주피터테마
- 데이터분석
- 주피터노트북 커널 제거
- 경사하강법
- 주피터노트북 커널 목록
- 회귀분석
- regression
- 한빛미디어
- jupytertheme
- random forest
- MySQL
- Today
- Total
유승훈
Intro to machine learning - (3) Decision Tree 본문
Intro to machine learning - (3) Decision Tree
seunghuni96 2020. 11. 17. 20:25Decision Tree는 분류(Classification)와 회귀(Regression)문제를 둘 다 풀 수 있는 알고리즘입니다.
변수들에 조건을 붙여서 데이터들을 분류하는 방식으로 모델을 만듭니다.
데이터를 나눌때 우리는 Decision Boundary를 설정합니다. 데이터를 어떤 변수를 기준으로 어떻게 Split할지를 정하는 것입니다.
가장 위의 그림을 보면, 파란색(Fast)과 빨간색(Slow) 각 Class에서 3개의 Data Point 때문에 Decision Boundary가 길게 삐져나와 있는 것을 볼 수 있습니다. 극히 일부의 데이터 때문에 분류영역이 생성된 것인데, 이는 Overfitting(과적합) 문제를 의심해볼 수 있습니다. Decision Tree의 Parameter들을 통해 이를 어느정도 해결 할 수 있습니다.
처음 볼 Parameter는 min_samples_split입니다.
데이터를 분류 할 때, 분류된 데이터들의 최소 갯수를 설정하도록 합니다. 이를 통해 분류 후 너무 적은 데이터가 남지 않도록 함으로써 과적합을 방지할 수 있습니다.
다음은 Entropy.
Decision Tree가 Data를 어떻게 분류할지를 정하는 지표입니다. 이는 데이터의 불순도를 의미합니다.
각각 다른 변수로 그린 plot에서, Bumpiness보다 Speed Limit으로 데이터가 더 잘 분류되는 것을 볼 수 있습니다. 이 Entropy를 통해 데이터를 순도 높게 분류하는 Variable을 찾습니다. Entropy를 계산하는 공식은 다음과 같습니다.
$\sum_i^{} -P_i *log_2P_i$
이 Entropy를 통해 Information Gain이라는 지표를 계산합니다. 분류하기 전의 Entropy와 분류한 후의 각 잎의 Entropy를 계산해서 얼마나 효율적인 분류인가를 계산하는 것입니다.
분류하기 전의 Entropy에서 분류한 후의 각 잎의 Entropy에 Weight를 곱한 값의 총합을 빼줍니다. 여기서 Weight는 잎에 속한 데이터의 비율입니다.
Entropy로 계산하는 Information Gain외에도, 분기의 불순도를 평가하는 Gini가 있습니다. Decision Tree를 정의할 때 Criterion 파라미터로 이를 변경해줄 수 있습니다.
Decision Tree는 Overfitting이 쉬운 경향이 있습니다. 특히 변수가 많고 복잡한 나무 모형이 Overfit되기 쉽습니다. 이는 Parameter에 신경쓰면 해결할 수 있는 문제입니다.
Decision Tree는 모델 그 자체가 활용되기 보다는 이를 기반으로 다른 모형들이 만들어져 많이 사용되고 있습니다. GBM, RandomForest, LightGBM등이 있다. 여러개의 Decision Tree를 조합해서 만드는 알고리즘인데, 이를 앙상블(Ensemble) 방식이라고 합니다.
'강의정리 > udacity - machine learning' 카테고리의 다른 글
Intro to machine learning - (6) Regression(1) (0) | 2021.01.13 |
---|---|
Intro to machine learning - (5) Datasets and Questions (0) | 2021.01.11 |
Intro to machine learning - (4) Choose your own algorithm (0) | 2020.11.30 |
Intro to machine learning - (2) Support Vector Machine (0) | 2020.11.08 |
Intro to machine learning - (1) Naive Bayes (0) | 2020.11.04 |