회귀문제에서 사용하는 decision tree
분류 문제에만 사용하는 것처럼 보이지만 decision tree는 regression 문제에도 사용이 가능합니다.
불순도를 측정하는 기준으로 분산을 사용할 수 있습니다.
분산이라는 것이 연속형 데이터 같은 경우 분산이 크면 넓게 퍼져 있어 그만큼 불순하다? 불확실하다?라는 느낌을 받을 수 있다고 생각합니다.
분산의 감소량이 최대가 되는 feature를 선택하여 tree를 생성해나갑니다.
예를 들어서 다음과 같은 data set이 주어졌다고 합시다.
현재 상태에서 target의 표준편차는 얼마일까요?
계산하면 9.32가 나온다고 합니다.
이제 구분하고자하는 feature를 선택하는데 예를 들어 outlook을 먼저 선택합시다.
outlook을 선택하면서 표준편차가 얼마나 감소하는지 계산하려면
outlook=overcast인 경우 data값 48,43,52,44
outlook=sunny인 경우 data값 46,62,23,46,30
outlook=rainy인 경우 data값 26,30,36,38,48
각각을 이용하여 아래와 같은 표를 완성합니다.
outlook을 선택하면 원래 표준편차 9.32에서 최종 7.66으로 감소했습니다.
표준편차 감소량이 9.32-7.66=1.66이 됩니다.
모든 feature에 대해서 위와 같이 계산해보고 표준편차 감소량이 가장 큰 feature를 선택하여 구분합니다.
마지막 언제까지 node를 구분해야하느냐 궁금할 수 있는데
그 기준점은 변동계수(coefficient of variance, 표준편차/평균)가 지정한 threshold보다 낮으면 더 이상 분할하지 않고 그 dataset의 target값의 평균을 취하여 예측값으로 사용합니다.
평균을 취하는 이유는 선형회귀 모형에서 최종 예측값이 데이터가 주어질 때 기댓값이라서 그거에 기반한 것이라고 추측하고 있습니다.
위의 경우 기준점을 10%로 삼았는데 overcast의 경우만 변동계수가 8%로 기준점보다 낮아서 overcast에서는 더 이상 분리하지 않습니다.
이 기준점에 못미치는 나머지 node는 계속해서 분할해나갑니다.
예를 들어 새로온 dataset의 feature가 outlook=rainy, temp=cool이면 target을 38로 예측하면 될 것입니다.
참고
Decision Tree Regression (saedsayad.com)
'정형데이터' 카테고리의 다른 글
연속형 변수를 전처리하는 방법은 무엇이 있고 왜 전처리를 해야하는가? (0) | 2022.06.19 |
---|---|
범주형 변수를 전처리하는 방법의 모든 것 (0) | 2022.05.26 |
연속형 변수를 사용한 decision tree (0) | 2021.12.14 |
decision tree의 불순도를 측정하는 기준 (0) | 2021.12.14 |
decision tree의 가지치기(pruning) (0) | 2021.12.13 |