회귀문제에서 사용하는 decision tree

분류 문제에만 사용하는 것처럼 보이지만 decision treeregression 문제에도 사용이 가능합니다.

 

불순도를 측정하는 기준으로 분산을 사용할 수 있습니다.

 

분산이라는 것이 연속형 데이터 같은 경우 분산이 크면 넓게 퍼져 있어 그만큼 불순하다? 불확실하다?라는 느낌을 받을 수 있다고 생각합니다.

 

분산의 감소량이 최대가 되는 feature를 선택하여 tree를 생성해나갑니다.

 

예를 들어서 다음과 같은 data set이 주어졌다고 합시다.

 

그림1. 예시 데이터

 

현재 상태에서 target의 표준편차는 얼마일까요?

 

계산하면 9.32가 나온다고 합니다.

 

이제 구분하고자하는 feature를 선택하는데 예를 들어 outlook을 먼저 선택합시다.

 

outlook을 선택하면서 표준편차가 얼마나 감소하는지 계산하려면

 

outlook=overcast인 경우 data48,43,52,44

 

outlook=sunny인 경우 data46,62,23,46,30

 

outlook=rainy인 경우 data26,30,36,38,48

 

각각을 이용하여 아래와 같은 표를 완성합니다.

 

그림2. outlook을 선택한 경우 target의 표준편차 계산

 

outlook을 선택하면 원래 표준편차 9.32에서 최종 7.66으로 감소했습니다.

 

표준편차 감소량이 9.32-7.66=1.66이 됩니다.

 

모든 feature에 대해서 위와 같이 계산해보고 표준편차 감소량이 가장 큰 feature를 선택하여 구분합니다.

 

마지막 언제까지 node를 구분해야하느냐 궁금할 수 있는데

 

그 기준점은 변동계수(coefficient of variance, 표준편차/평균)가 지정한 threshold보다 낮으면 더 이상 분할하지 않고 datasettarget값의 평균을 취하여 예측값으로 사용합니다.

 

평균을 취하는 이유는 선형회귀 모형에서 최종 예측값이 데이터가 주어질 때 기댓값이라서 그거에 기반한 것이라고 추측하고 있습니다.

 

그림3. outlook을 선택할 때 분리되는 최종 예측값 . 

 

위의 경우 기준점을 10%로 삼았는데 overcast의 경우만 변동계수가 8%로 기준점보다 낮아서 overcast에서는 더 이상 분리하지 않습니다.

 

이 기준점에 못미치는 나머지 node는 계속해서 분할해나갑니다.

 

그림4. regression decision tree의 최종 분할

 

예를 들어 새로온 dataset의 feature가 outlook=rainy, temp=cool이면 target을 38로 예측하면 될 것입니다.

 

참고

 

Decision Tree Regression (saedsayad.com)

 

Decision Tree Regression

Decision tree builds regression or classification models in the form of a tree structure. It breaks down a dataset into smaller and smaller subsets while at the same time an associated decision tree is incrementally developed. The final result is a tree wi

www.saedsayad.com

 

 

TAGS.

Comments