꺼내먹는지식 준
머신러닝 정리 4.5 -회귀 나무 (Regression Tree) 본문
decision tree를 공부할 때 보통 이산형 데이터 즉 분류모델을 배운다.
그런데 decision tree는 연속형 데이터에도 사용가능하다.
그리고 코딩한줄이면 간단히 구현이 된다.
하지만 머리로 생각해봐도 어떤 식으로 짜여졌는지 감이 잘 안온다.
이에따라 간단히 정리해본다.
(https://www.youtube.com/watch?v=g9c66TUylZ4) 내용 기반

Linear Regression 으로 처리하기 어려운 경우 회귀 나무를 사용한다.

위와 같이 X의 범위로 간단하게 분류한 후, leaf node에는 해당되는 데이터들의 y 값의 평균을 기입한다.
위 과정을 반복하면, 쉽게 나눌 수 있다.
하지만 위와 같이 단순한 경우는 사실 그래프를 눈으로 보고 분류해도 된다. 회귀 나무가 필요 없다.
회귀 나무는 feature 개수가 1개보다 많을 때 진가가 드러난다.

여기서부터는 눈으로 구분하기 쉽지 않다.

반면 회귀 나무는 쉽게 분류할 수 있다.
회귀나무에 대해 알아봤으니, 이제 회귀나무를 만드는 법을 알아보자.
Root Node 는 어떻게 정할까?

예시를 통해 쉽게 접근해보자.
root node 의 기준을 Dosage < 3 으로 정한다고 가정해보자.
3 미만의 node 는 하나로 Average = 0 이다. 분류된 node의 개수가 적긴 하지만, 일단 잘 맞춘다.
하지만 3 초과의 node는 Aveage = 38.8 이다. 실제로 데이터를 살펴보면 상당 수의 데이터가 100% 이기도 하고, 0%이기도 하다.
38.8 이라는 수치는 전혀 데이터를 잘 설명하지 못한다.

위 차이를 시각적으로 표현하기 위하여 데이터로부터 평균 값에 점선을 그어보자.
이 점선을 Residual 이라 한다.
수치적으로 차이를 나타내려면 MSE 를 구하면 된다.

왼 오른 노드의 Residual을 모두 구하는 과정은 MSE 구하는 과정과 동일하다.
위 Residual 의 총 합은 37,468.5 로 계산되었다.

구한 값을 그래프에 표현해보자.
눈치가 빠른 분들은 위 그래프를 보고 Root Node를 결정하기 위한 과정이 interate 과정이라는 것을 알아챘을 것이다.

그 다음 Root Node 의 기준은 다음 두 데이터의 평균 값으로 결정한다.

위 과정으로 다시 분류한 후, residual 값을 계산한다.

위 과정을 반복하면 아래와 같이 그래프가 생기는 것을 알 수 있다.

이 때 Residual 이 가장 낮은 Dosage < 14.5 가 Root Node 가 된다.
Decision Tree에서 label 을 Root Node 로 사용했던 것과 사뭇 다르다.

그 이후 분류에서도 똑같이 Residual 을 구하면 된다.

분류 된 데이터가 1개일 때 leaf node 처리한다.
또한 Average = 0 으로 분류 된 데이터는 4개나 되지만 4개가 다 같은 값이므로 leaf node 처리한다.
다 좋은데 위에 처럼 하면 overfitting 될 가능성이 있다.
이럴 때는 분류할 때 최소 데이터 개수를 정하는 방법 등 다양한 방법이있다.
(보통 최소 데이터 개수 20개)
위 문제는 데이터가 애초에 개수가 적으므로 minimum 개수를 7개로 설정한다.

이 때 왼쪽 노드는 leaf 가 되고, 6개 데이터의 Average는 4.2% 가 된다.
오른 쪽은 데이터가 7개보다 많으므로 leaf 가 아니고 분류 node 가 된다.

반복하면 위와 같은 그래프가 결정된다.
당연히 분류의 기준 값은 residual 을 통해 찾는다.
feature가 Dosage 1개인 경우로 분류를 해보았다. feature 의 개수가 1개를 넘을 경우는 어떻게 될까?
먼저 Dosage의 residual 을 구해 가장 낮을 때의 threshold 를 후보로 한다.
다음은 Age로 동일하게 MSR(Minimum sum of residual)의 threshold를 후보로 한다.
Sex도 동일하게 threshold 후보를 찾는다.

이 중 가장 SSR이 낮은 Age를 첫번 째 cadidate로 한다.
그리고 나서 나무를 키워낸다.

※Age 로 분류한 후, 또 다시 분류할 때는 남은 Dosage 와 Sex 중에서 골라야 하는 것일까? Decision Tree는 애초에 한 feature로 discrete 하게 분류를 해버리고 나니 다음 분류 노드에서 사용했던 feature가 제외되지만, Regression Tree는 얼마든지 또 continuous 한 값을 사용할 수 있다. 논리적으로 생각해 봤을 때는 만약 Age feature가 또다시 SSR이 낮으면 선택될 것 같다.
Regression Tree는 딱 봐도 굉장히 오래 걸릴 것 같다. 하지만 굉장히 직관적이다.
'AI > 머신러닝' 카테고리의 다른 글
머신러닝 정리 4.5(3) - AdaBoost (1) | 2023.02.16 |
---|---|
머신러닝 정리 4.5(2) - 앙상블이란?, Random Forests (0) | 2023.02.16 |
머신러닝 정리 9 - Naive Bayes vs Logistic Regression (0) | 2022.11.02 |
머신러닝 정리 8.5(2) - Naive Bayes는 Generative Model (0) | 2022.11.01 |
머신러닝 정리 8.5(1) - Discriminative model vs Generative Model (2) | 2022.10.31 |