XGBoost for regression (회귀)
XGBoost는 크고 복잡한 데이터에 적용할 수 있도록 설계된 모델이다.
Similarity Score
분자 (numerator) 에서 해당 node의 residuals 값을 모두 더해주기 때문에,
(+7, -7, +6, -6) 처럼 양수와 음수가 섞일수록 그 값은 더 작아진다.
(단일 node에서 데이터가 더 넓게 퍼져있기 때문에 그런걸로 이해된다.)
lambda 값은 regularization을 위한 변수이다.
이 값이 클수록 Similarity 값이 작아지고
이는 Gain 값 또한 작아지게 만들기 때문에,
pruning의 확률이 더 올라가서, Overfitting을 방지하는 효과가 있다.
또한, 해당 node에서 data point 개수가 적을수록 더 큰 regularization 효과를 가진다.
Gain
Gain은, 노드의 분할 기준을 설정할 때 활용되는 값이다.
현재 노드에 [1, 2, 3, 4] 가 있다고 하면,
(1.5, 2.5, 3.5) 기준으로 노드를 분할하고
Gain이 최대가 되는 값이, 최종적으로 node 분할의 기준이 된다.
Pruning
gamma 값을 기준으로
해당 node의 Gain 값이 gamma 보다 크면 pruning을 멈추고,
그렇지 않으면 계속 위쪽으로 pruning을 진행한다.
model prediction
전체 M 개의 tree를 생성했다면,
각 tree에서 input data가 속한, leaf node에서 계산된 output value를 모두 더하고
여기에 learning rate를 곱해서 처음 (initial predict) 값에 더해준다.
이 값이 XGBoost model의 최종 예측 (predict) 값이 된다.
Derivation of Formula (수식 유도)
XGBoost에서 최소화 (minimize) 시켜야 하는 수식
이 식이 XGBoost에서 최소화(minimize)시켜야 하는 수식이다.
Loss Function + Pruning + Regularization 항들 (terms) 의 합으로 이루어져 있는데,
이 중 Pruning 부분은 미분하면 0이 되기 때문에, 영향을 미치지 않는다.
또한 Regularization Term을 살펴보면,
(Output value)^2 이 더해져서
L2-Norm을 활용한 Ridge 방식과 매우 유사하다.
Loss Function Term 안에 Output Value 를 추가하면, 위와 같은 형태의 식이 된다.
Taylor Approximation
Loss Function 항의 수식을 간단하게 만들기 위해,
테일러 급수 (Taylor Series) 를 2차항까지 전개한 식으로 변환한다.
여기서 p(i)로 한 번 미분한 값을 g (gradient & 그래디언트),
두 번 미분한 값을 h (hessian & 헤시안) 이라고 표현했다.
그리고 위 식을 Output Value에 대해 미분하고,
그 값이 0이 되는 Output Value 값을 찾아야 한다.
Output Value
그리고 위 식이 Output Value의 최종 형태가 된다.
즉, Output Value는
(-1) * [ (gradient들의 합) / (hessian들의 합 + lambda (regularization term)) ]
이다.
Regression의 경우,
gradient는 잔차 (Residual) 가 되고,
hessian은 1이 된다.
즉, Regression에서 Output Value는 위 식과 같은 형태가 된다.
Similarity Score
위의 수식에서,
Loss Function + Regularization 을 최소화 (minimize) 하기 위해
[ (-1/2) * Similarity Score ] 값을 최소화 시켜야 한다.
즉, Similarity Score 값을 최대화 (maximize) 시켜야 한다.
XGBoost에서 Gain 값이 가장 큰 기준으로 node를 분할하는 이유가,
분할된 node들의 Similarity Score 값이 클수록
Loss Function + Regularization 값을 잘 최소화 (minimize) 시킨 것이기 때문이다.
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 >
< 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 |