본문 바로가기

Data Science

XGBoost for regression

XGBoost for regression (회귀)

 

XGBoost는 크고 복잡한 데이터에 적용할 수 있도록 설계된 모델이다.

 

 

Similarity Score

Similarity Score

 

분자 (numerator) 에서 해당 node의 residuals 값을 모두 더해주기 때문에,

(+7, -7, +6, -6) 처럼 양수와 음수가 섞일수록 그 값은 더 작아진다.

(단일 node에서 데이터가 더 넓게 퍼져있기 때문에 그런걸로 이해된다.)

 

 

lambda for Regularization

 

lambda 값은 regularization을 위한 변수이다.

 

이 값이 클수록 Similarity 값이 작아지고

이는 Gain 값 또한 작아지게 만들기 때문에,

pruning의 확률이 더 올라가서, Overfitting을 방지하는 효과가 있다.

 

또한, 해당 node에서 data point 개수가 적을수록 더 큰 regularization 효과를 가진다.

 

 

 

Gain

Gain

 

Gain은, 노드의 분할 기준을 설정할 때 활용되는 값이다.

현재 노드에 [1, 2, 3, 4] 가 있다고 하면,

(1.5, 2.5, 3.5) 기준으로 노드를 분할하고

Gain이 최대가 되는 값이, 최종적으로 node 분할의 기준이 된다.

 

 

 

Pruning

Pruning

 

gamma

 

gamma 값을 기준으로

해당 node의 Gain 값이 gamma 보다 크면 pruning을 멈추고,

그렇지 않으면 계속 위쪽으로 pruning을 진행한다.

 

 

 

model prediction

현재 tree에서, data가 속한 leaf node에서의 output value

 

predicted value

 

전체 M 개의 tree를 생성했다면,

각 tree에서 input data가 속한, leaf node에서 계산된 output value를 모두 더하고

여기에 learning rate를 곱해서 처음 (initial predict) 값에 더해준다.

 

이 값이 XGBoost model의 최종 예측 (predict) 값이 된다.

 

learning rate (eta)

 

 

 

 

 


Derivation of Formula (수식 유도)
XGBoost에서 최소화 (minimize) 시켜야 하는 수식

XGBoost에서 최소화 (minimize) 시켜야 하는 수식

 

Output Value

 

이 식이 XGBoost에서 최소화(minimize)시켜야 하는 수식이다.

 

Loss Function + Pruning + Regularization 항들 (terms) 의 합으로 이루어져 있는데,

이 중 Pruning 부분은 미분하면 0이 되기 때문에, 영향을 미치지 않는다.

 

또한 Regularization Term을 살펴보면,

(Output value)^2 이 더해져서

L2-Norm을 활용한 Ridge 방식과 매우 유사하다.

 

 

Output Value 를 고려한 수식

 

Loss Function Term 안에 Output Value 를 추가하면, 위와 같은 형태의 식이 된다.

 

 

Taylor Approximation

Second-order Taylor Approximation

 

Loss Function 항의 수식을 간단하게 만들기 위해,

테일러 급수 (Taylor Series) 를 2차항까지 전개한 식으로 변환한다.

 

여기서 p(i)로 한 번 미분한 값을 g (gradient & 그래디언트),

두 번 미분한 값을 h (hessian & 헤시안) 이라고 표현했다.

 

Output Value에 대해 미분

 

그리고 위 식을 Output Value에 대해 미분하고,

그 값이 0이 되는 Output Value 값을 찾아야 한다.

 

Output Value

Output Value

 

그리고 위 식이 Output Value의 최종 형태가 된다.

 

즉, Output Value는

(-1) * [ (gradient들의 합) /  (hessian들의 합 + lambda (regularization term)) ]

이다.

 

Regression에서의 gradient와 hessian

 

Regression의 경우,

gradient는 잔차 (Residual) 가 되고,

hessian은 1이 된다.

 

Output Value (Regression)

 

즉, Regression에서 Output Value는 위 식과 같은 형태가 된다.

 

 

Similarity Score

Similarity Score

 

위의 수식에서,

Loss Function + Regularization 을 최소화 (minimize) 하기 위해

[ (-1/2) * Similarity Score ] 값을 최소화 시켜야 한다.

 

즉, Similarity Score 값을 최대화 (maximize) 시켜야 한다.

 

XGBoost에서 Gain 값이 가장 큰 기준으로 node를 분할하는 이유가,

분할된 node들의 Similarity Score 값이 클수록

Loss Function + Regularization 값을 잘 최소화 (minimize) 시킨 것이기 때문이다.

 

Similarity Score for regression

 

regression에서 Similarity Score는 최종적으로 이 형태가 된다.

 

 

 


 

◎ References

 

< paper, XGBoost: A Scalable Tree Boosting System >

 

< StatQuest, XGBoost Part 1 (of 4): Regression >

 

< StatQuest, XGBoost Part 3 (of 4): Mathematical Details >

 

< XGBoost for classfication >

 

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

 

< 세종대왕, XGboost 주요 하이파라미터 (with 파이썬) >

 

< 밥먹는 개발자, XGBoost (2) - Parameter 이해와 현업자의 설정 방법 >

 

< psystat, XGBoost와 LightGBM 하이퍼파라미터 튜닝 가이드 >

 

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

CatBoost  (0) 2023.05.13
XGBoost for classification  (0) 2023.05.06
Gradient Boosting (그래디언트 부스팅) for classification  (0) 2023.05.03
Probability and Likelihood  (0) 2023.05.01
Linear Regression  (0) 2023.05.01