Gradient Boosting: 모델의 예측 값을 바탕으로 데이터의 잔여 오차를 계산하여 이 잔여 오차를 다시 예측하는 식으로 모델을 학습시키는 방식
- difficulty = 회귀 < 분류 < rank
방법
(비유)
- 선형회귀선을 식으로 나타내면, $y = f_1(x)$.
- 이 회귀선의 잔차($y-\hat{y}$)는, $y - f_1(x)$이 됨.
- 만약 이 잔차를 다시 y값으로 두고, 이 값만을 예측할 수 있다면?
- 이들을 더해보면, $y = f_1(x) + f_2(x)$
- 즉, 이전 모델이 못맞추고 있는 만큼을 다음 모델을 통해 맞추고, 이들을 더해서 y값을 예측하는 것
- 이것들을 잔차(y)가 원하는 만큼 줄어들 때까지 반복
왜 ‘그레디언트’ 인가?
- 모델 학습 방법이 경사하강법 알고리즘을 활용했기 떄문에 Gradient라는 이름을 가짐
- 잔여 오차를 줄이는 방향으로 weak learner들을 결합
- 선형회귀에서 손실함수를 $\frac{1}{2}(y-F(x))^2$로 정의하고(OLS 사용, $\frac{1}{2}$은 미분을 쉽게 하기 위함), 미분하면
- $= \frac{y^2 - 2yF(x) + F(x)^2}{2}$ $= \frac{-2y + 2F(x)}{2}$ $= F(x) - y$(미분값) = -잔차
- 즉, 잔차 = -gradient(미분값을 빼는 것. 즉, 경사하강법(Negative Gradient))라고 할 수 있음(다음 모델을 만들 때, 경사하강법을 이용해 만듦)
알고리즘
- 초기에는 평균값으로 모든 예측 값을 예측한다.
- 실제 값과 오차를 구해, 해당 오차를 예측하는 Tree 를 만든다.