본문 바로가기

Data Science

Gradient Boosting (그래디언트 부스팅) for regression

Gradient Boosting (그래디언트 부스팅) for Regression (회귀)

 

n 개의 Data

 

n 개의 Data sample이 있을 때,

 

Loss Function

 

Loss Function (손실 함수) 을 sum of squares에 1/2을 곱한 값으로 정의한다.

1/2를 곱한 이유는, 이후 Gradient Descent 과정에서 2차항의 2가 1/2과 곱해져서 상쇄되기 때문이다.

 

 


< Step 1 >

Step 1

 

가장 먼저 초기 F0(x)를 구한다.

Gradient Descent로 Loss Function 값을 최소화하는 F0(x)를 구해보면,

그 값은 모든 data sample의 y 값의 평균이 된다.

 

즉, 이 상태에서 모델은 모든 데이터에 대해

y의 평균으로 예측 (predict) 한다.

 

 

 

< Step 2>

Step 2

 

Step 2는 1번 tree 부터, 마지막 M번 tree까지

총 M번 반복된다.

 

 

 

    < Step 2 - (a) >

Step 2 - (a)

 

현재 m 번째 tree에서

실제값 yi와, 이전 단계에서의 예측값 F(m-1)(x) 의 차이 (pseudo residual)를 구한다.

 

 

 

    < Step 2 - (b) >

Step 2 - (b)

 

Step2 - (a) 단계에서 구한 residual (잔차) r 값을,

해당 data sample이 속한 leaf node에 할당한다.

 

 

 

    < Step 2 - (c) >

Step 2 - (c)

 

m 번째 tree의 j 번째 leaf node 에서,

해당 leaf node에 속한 data sample들의 residuals (잔차) 의 평균을 구한다.

여기서도 "Gradient Descent"를 활용한다.

 

 

 

    < Step 2 - (d) >

Step 2 - (d)

 

Step 2 - (c)에서 구한 leaf node의 residuals 평균값에 learning rate를 곱해서,

이전 단계 (m-1)에서 구한 F(m-1)(x)에 더해준다.

그리고 그 값이 F(m)(x)가 된다.

 

Step 2 과정을 M 개의 tree에 대해서 M 번 반복한다.

 

 

 

< Step 3 >

Step 3

 

Step 2를 M번째 tree까지 모두 반복하고 나면, F(M)(x)를 얻게 되는데

이 값이 x에 대한 모델의 최종 y (predict) 값이다.

 

 


 

Gradient Boosting의 작동 방식에 대해 공부하고 나니,

이름에 왜 "Gradient"가 들어가는지 확실히 이해할 수 있었다.

 

 

 


◎ References

 

< StatQuest, Gradient Boost Part 2 (of 4): Regression Details >

 

< Paper, Greedy Function Approximation: A Gradient Boosting Machine >

 

'Data Science' 카테고리의 다른 글

Linear Regression  (0) 2023.05.01
p-value & p-hacking  (0) 2023.04.28
Conditional Entropy  (0) 2023.04.27
Entropy & Surprise  (0) 2023.04.26
Adaboost  (0) 2023.04.25