여러가지공부/머신러닝(Machine Learning)

[머신러닝] Regression Tree란? 예제로 쉽게 이해하기

끄적끄적아무거나 2023. 5. 5. 17:58
반응형

 

목차

     

     

     

     

    Regression Tree란?

     

    그림1

     

    그림1은 약 하루 섭취 정량이 100%일 경우 섭취량에 따른 효과를 그래프로 그린 것입니다. 기울기와 절편 두 개의 베타(Beta) 파라미터로 표현하는 선형 회기식(Linear Regression)으로 위 그래프를 예측하기 힘듭니다.

     

    그래서 사용하는 방식이 Regression Tree 입니다. Tree 방식에 대한 이해가 부족하면 Regression Tree 를 이해하기 힘드므로 Decision Tree(https://scribblinganything.tistory.com/709) 글을 먼저 보고 오시길 바랍니다.

     

     

     

     

     

    Classification Tree와 회기 트리(Regression Tree) 차이

     

    그림2

     

    두 트리 구조의 가장 큰 차이는 Leaf Node에 의해 결정됩니다. 위 그림에서 녹색칸이 Leaf Node 입니다. 왼쪽 그림은 클래스 트리로 라벨(카테고리)로 Leaf Node가 정해집니다. 반면에 회기 트리(Regression Tree)의 경우 효과라는 수치(Numeric Value)에 의해 결정이 됩니다. 

     

     

     

     

     

     

     

     

     

    Regression Tree 모델링 방법 : 예제 실습

    위 그림1을 예제로 회기 트리 모델을 만드는 방법에 대해 알아보겠습니다.

     

    우선 첫번째 기준을 나눌 Root Node를 결정하고 그리고 다음으로 Internal Node를 결정해야합니다.

     

     

     

    어떤 기준으로 Root Node를 결정할까?

     

     

     

    그림3

     

    그림3과 같이 섭취량 데이트 별로 경계를 빨간선으로 나눕니다. 빨간선의 왼쪽은 효과가 0인 데이터가 하나이고 오른쪽은 나머지 데이터들을 가집니다. 즉, 이를 트리로 표현하면 그림3의 우측과 같이 나올 수 있습니다.

     

    섭취량이 10%(빨간선) 보다 적을 경우는 효과가 0%이고 이상 섭취할 경우 나머지 효과 데이터들의 평균인 40%가 됩니다. 

     

    그리고 해당 예측 트리가 얼마나 맞는지를 확인하기 위해 Residual 을 계산해줍니다. 빨간선 왼쪽은 0%와 실제 값이 동일하므로 0이고 오른쪽은 |실제데이터 - 예측값(40%)|^2를 모두 더해줍니다. 

     

    RSS = (40-0)^2 + (40-0)^2 + (40-0)^2 + (40-7)^2  + ····· + (40-7)^2

     

    위와 같이 계산 됩니다. 

     

    즉, 빨간색 선을 계속 이동하면서 아래와 같이 RSS 값을 계산 해줍니다. 

     

     

    그림4

     

    이렇게 RSS를 빨간선을 이동하면서 구하고 그림4와 같이 전체에 대해 RSS를 표기할 수 있습니다. 70%에서 RSS가 가장 낮게 나오므로 해당 예측치가 실제 데이터에 가장 근접함을 알 수 있습니다.

     

     

     

    그림5

     

    그림5와 같이 Root Node를 70% 기준으로 만들어 줍니다. 다음으로 True인 경우에 대한 다음 Internal Node를 만들어 줍니다. 

     

     

     

     

    그림6

     

    다음으로 빨간선 왼쪽에서 Internal Node를 만들어 줍니다. 방법은 Root Node 만드는 방식과 동일합니다. 녹색선의 경계를 움직이면서 RSS 값을 앞서 그림4와 같이 이동하면서 구해 줍니다. 

     

     

    이러한 방식을 반복 사용하면서 효과가 동일한 %로 적용되는 Leaf Node가 나올때까지 진행합니다. 

     

     

    그림7

     

    그림7은 해당 방식으로 왼쪽 노드를 완성한 트리입니다. 오른쪽 노드도 동일한 방식으로 진행하시면 됩니다. 

     

     

     

     

     

     

     

     

    Regression Tree 모델링 한계점 및 해결 방법

     

    앞서 Classification Tree와 동일하게 효율이 동일할 때까지 트리를 나눠서 Leaf Node를 만드는 것은 결국 Bias를 최소로 줄이게 되지만 Variance가 올라가는 문제가 발생합니다.

     

    이를 해결하기 위해 제안하는 방식은 크게 두가지 입니다. 

     

     

    • Train Data set의 개수 제한(Threshold)
    • 가지치기 (Pruning)

     

    트레인 데이터 개수 제한은 예를 들어 그림6의 데이터에서 데이터 수가 6개이면 더 이상 분류를 하지않고 평균(average) 값을 사용하는 것입니다. 

     

    가지치기는 다음 포스트에서 상세하게 다루도록 하겠습니다. 

     

    반응형