하마가 분석하마

[boosting] 2. GBM 본문

알고리즘

[boosting] 2. GBM

Rrohchan 2021. 3. 8. 00:35

[Gradient Boosting Machine]

1. Gradient boosting = Boosting with gradient decent

 

2. 첫 번째 단계의 모델 tree1을 통해 Y를 예측하고 Residual을 다시 두 번째 단계 모델 tree2를 통해 예측하고, 여기서 발생한 Residual을 모델 tree3로 예측

 

3. 점차 residual이 작아짐

 

4. Gradient boosted model = tree1 + tree2 + tree3

 

 

과정

=> residual을 계속 모델링하여 나오는 아이디어를 모으는 것

 

 

[gradient 의미]

- 미분이라 생각

- Loss function에 gradient는 손실함수를 f(x)로 미분한 값

 

왜 gradient라 부르는가

=> residual이 결국 gradient를 의미

 

따라서 처음 모델에 대한 residual에 fitting해서 다음 모델을 만들어 나가는 것은 negative gradient를 이용해 다음 모델을 만들어 나가는 것과 같다.

 

 

[GBM 과정 이해]

 

GBM 과정

 GBM의 과정을 조금 더 자세하게 보자

 

 

=> h1은 데이터 전체 부분

=> h2는 h1에서 놓친 부분

=> h3는 h1, h2에서 놓친 부분

=> residual 부분을 파고 들겠다는 것.

=> 이렇게 만든 알고리즘을 다 합치는 것.

 

 

iteration 진행에 따른 residual의 변화

 


 

 경사 하강법을 통해 가중치 업데이트가 이루어진다. GBM 알고리즘은 높은 예측 성능을 가지지만 과적합이 쉽고, 시간이 매우 오래걸린다. 깃허브에 있는 예시 코드와 GridSearch는 데이터가 크지 않아서 코드가 금방 다 돌아간다.

 

 필자가 공모전에서 GBM을 사용해 본 결과 엄청 느리다. 다른 좋은 알고리즘 (LGBM)이 많기에 단일 알고리즘을 사용한 대회에서는 사용하지 않았고, 스태킹을 사용한 경우에만 사용하였다. 기본 개념을 잘 숙지하여 이후 프로젝트에서 GBM 알고리즘을 쓸 때 도움이 되었으면 좋겠다.

 

 

https://github.com/rch1025/Algorithm

 

rch1025/Algorithm

Practice example code for algorithms. Contribute to rch1025/Algorithm development by creating an account on GitHub.

github.com

 

'알고리즘' 카테고리의 다른 글

[Regularization model-1] Ridge Regression (1)  (0) 2021.06.02
[Boosting] 4. XGBoost, Light GBM  (0) 2021.03.20
[Bagging] 3. Random Forest-2  (0) 2021.03.16
[Bagging] 3. Random Forest-1  (0) 2021.03.14
[boosting] 1. AdaBoost  (0) 2021.03.04