유승훈

Intro to machine learning - (3) Decision Tree 본문

강의정리/udacity - machine learning

Intro to machine learning - (3) Decision Tree

seunghuni96 2020. 11. 17. 20:25

Decision Tree는 분류(Classification)와 회귀(Regression)문제를 둘 다 풀 수 있는 알고리즘입니다.

변수들에 조건을 붙여서 데이터들을 분류하는 방식으로 모델을 만듭니다.

 

Decision Treee 도식화

 

데이터를 나눌때 우리는 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) 방식이라고 합니다.

Comments