Gradient Boosting
- gradient descent를 이용하여 boosting을 하는 방법
- 잔차(residual)을 줄여나가는 방식으로 학습을 진행한다.
1. 첫번째 model: 평균으로 예측하여 잔차 구하기
6개 example에 대해 weight의 mean은 71.2로 Residual = y - predicted y를 구해준다.
1번 example의 residual은 88-71.2=16.8이다.
tree를 진행시키며 마지막 node에 residual을 쓰고, 평균을 처리한다. 이렇게 나온 residual을 train set에 그대로 적용하면 overfitting이 일어난다.
- residual이 16.8이 나온 example에 대해, 다시 y값을 predict 하기 위해 이전의 prediction인 71.2에 16.8을 더해주면 원래 y값인 88과 동일해 진다.
=> overfitting을 막기 위해 learning rate를 적용한다.
learning rate =0.1을 적용하여 다시 y를 예측하면 72.9로, overfitting을 조금 피했다. 이렇게 새로이 y값을 예측하여 다시 잔차를 구하겠다.
2. 두번째 model: learning rate를 적용한 model에서 잔차 구하기
평균으로만 잔차를 구했을때에 비해 잔차가 더 작아졌다. 새롭게 구한 잔차로 새로운 tree를 만들었다.
새롭게 만든 tree로 새로운 residual을 구하겠다.
이렇게 만든 세번째 잔차는 첫번째, 두번째 잔차에 비해 작아져 있다.
이런 식으로 learning rate를 적용하여 tree를 계속계속 학습시킨다.
Gradient Boosting의 특징
- 순차적인 학습으로 시간이 오래 소요됨
- overfitting이 잘 일어나기 때문에 overfitting을 막기 위해 learning rate를 정밀하게 조절해야 함.
- XGboost, LGBM