Loading [MathJax]/jax/output/CommonHTML/jax.js
본문 바로가기
ML/Ensemble

[ML][Ensemble]Gradient Boosting Machine(GBM)

by 어떻게든 되겠지~ 2024. 7. 2.

Gradient Boosting Machine(GBM)

Residual(잔차, yiˆf(xi))( Negative Gradient)를 이용하여 이전 모델의 약점을 보완하는 새로운 모형을 순차적으로 Fitting한 뒤 이들을 선형결합하여 얻어진 모델을 생성하는 지도학습 알고리즘

 

y1=Fprev(x1)+h(x1)y2=Fprev(x2)+h(x2)yn=Fprev(xn)+h(xn)Fnew(x)=Fprev(x)+lh(x)

위의 식과 그림처럼 이전 모델 Fprev(x)와 잔차를 줄여주는 함수 h(x)를 통해 모델을 학습한다


※ Residual Negative Gradient

GBM의 Loss Function으로는 미분이 가능한 MAE(L1 Loss), MSE(L2 Loss), Logistic Loss를 사용한다

여기서 Residual은 단순한 잔차의 의미뿐만 아니라, Negative Gradient와도 의미가 같은데, 잔차를 단순히 잔차로만 생각하지 않고 다양한 Loss Function의 Negative Gradient를 통해 Residual을 정의할 수 있다

Gradient=Lˆf(xi)=(yiˆf(xi))2ˆf(xi)=ˆf(xi)yi=Residual 


알고리즘

Loss Function : MSE Loss로 가정

L(yi,F(x))=1nni=1(yiF(xi))2

Step 1 : 초기 모형은 상수로 설정(하나의 Leaf Node)

F0(x)=argminγni=1L(yi,γ)

여기서 γ는 이전 모델의 Residual을 최소화하는 Decision Tree이다

Step 2 : Residual 계산 Next Tree를 m번 생성

form=1toM:(1)resim=negativegradient=[L(yi,Fm1(xi))Fm1(xi)]fori=1,n(2)resim()gmgm(xi,resim)DecisionTreegmTerminalRegionRjm(j=1,,Jm)gm=argmingni=1(resimg(xi))2(3)Constantγmforj=1,Jm:γjm=argminγxRijL(yi,Fm1(xi)+γ)γm=argminγni=1L(yi,Fm1(xi)+γgm(xi))(4)Fm(x)UpdateFm(x)=Fm1(x)+νγmgm(x)νOverfittingLearningrate  


Example

데이터

Step 1 : 초기 모델은 상수로 설정

Step 2 : m=1,M번 반복

우선 gm(g1)을 학습하기 위한 resim(resi1)을 구한다

 

g1 학습(여기서 Decision Tree를 학습하는 과정을 모두 보여주기는 어려워 간단한 Decision Tree 정의)

 

상수 γj1 계산

모델 업데이트

 

연 독서량 = 13, 하루 컴퓨터 사용량 = 2인 데이터에 대한 예측

 

반응형