출퇴근길에 공부하는 머신러닝
Gradient Boosting Machine (GBM)은 분류(Classification)와 회귀 (Regression) 문제에 모두 사용 가능한 머신러닝 알고리즘이다.
GBM의 핵심 아이디어는 잔차를 0으로 만드는 것이다. 모델이 예측을 하면, 그 예측과 실제 값 사이의 차이인 잔차가 발생하게 되며, GBM은 이 잔차를 줄이는 새로운 모델을 순차적으로 만들어 나가는 방식으로 작동한다.
GBM은 단일 잎(single leaf)에서 시작한다. 이 단일 잎은 목표 변수(Y)의 초기 추정치를 나타낸다. GBM에서 이 single leaf 모델이 예측하는 목표(Y) 추정 값은 모든 목표의 평균값으로 설정된다.
다음 단계에서는 잔차를 예측하는 결정 트리(Decision Tree)를 모델링한다. 만약 터미널 노드에 두 개 이상의 잔차 값이 있다면, 그 잔차 값들의 평균이 해당 노드의 값으로 할당된다.
GBM은 모델이 학습하는 과정에서 과적합(Overfitting)이 발생할 가능성이 있다. 이를 방지하기 위해 학습률(Shrinkage 또는 Learning Rate)을 사용한다. 이 학습률은 학습한 잔차를 얼마나 반영할지를 결정하며, 값은 0과 1 사이에서 설정된다.
모든 단계에서 예측된 잔차는 업데이트되며, 이 업데이트된 잔차를 사용하여 새로운 트리를 구축한다. 이 과정은 잔차가 충분히 작아질 때까지, 또는 사용자가 지정한 트리의 수에 도달할 때까지 반복된다.
Subsampling : 각 반복마다 데이터의 일부만 사용하여 오버피팅을 방지할 수 있다.
Shrinkage : 각 모델의 예측을 축소하여 모델의 복잡도를 줄일 수 있다.
Early Stopping : 검증 오류가 특정 기준을 충족하면 학습을 중단할 수 있다.
GBM은 손실 함수를 최소화하는 방향으로 모델을 학습한다. 여기서 손실 함수는 모델의 예측값과 실제 값 사이의 차이를 측정하는 것이다.
Squared Loss: $(예측값 - 실제값)^2$으로, 예측 오차의 제곱을 측정한다.
Absolute Loss: $|예측값 - 실제값|$으로, 예측 오차의 절댓값을 측정한다.
Huber Loss: Squared Loss와 Absolute Loss의 조합으로, 오차가 작을 때는 제곱을, 큰 경우에는 절댓값을 사용한다.
Quantile Loss: 예측값이 실제 값의 어느 백분위수에 해당하는지를 측정한다. 이 손실 함수는 예측의 불확실성을 다룰 때 유용하다.
대표적으로 Log Loss, Cross-Entropy Loss 등이 사용된다. 이들은 모델이 분류를 얼마나 잘했는지를 평가한다.
특성 중요도는 각 특성이 모델의 예측 성능에 얼마나 큰 영향을 끼쳤는지를 나타내는 지표이다. GBM에서 특성 중요도는 주로 다음과 같이 측정된다.
빈도 기반 중요도(Frequency-based Importance): 각 특성이 얼마나 자주 트리의 분할에서 사용되었는지를 기준으로 한다.
불순도 기반 중요도(Impurity-based Importance): 각 특성이 트리의 노드에서 불순도(impurity)를 얼마나 감소시켰는지를 기준으로 한다. 불순도의 감소는 정보 이득(information gain)과 연결되어 있다.
이러한 특성 중요도는 모델을 해석하고, 어떤 특성이 중요한지를 이해하며, 불필요한 특성을 제거할 수 있도록 도와준다.
Gradient Boosting Machine은 강력하고 다 versatile 한 알고리즘으로 다양한 데이터 세트에 대해 높은 성능을 발휘할 수 있다. 오버피팅을 방지하고 모델의 성능을 향상시키기 위한 다양한 기법과 매개변수 튜닝이 가능하며, 이를 통해 모델의 정확도를 높일 수 있다.