"붕어가 되어가는 나를 위해..."

 

추천 강의

 

StatQuest 의 XGBoost 강의 시리즈 [링크]

 

XGBoost 의 기본 개념부터 사용되는 수식의 유도까지 모두 다룬다. BAM~~ (Part4 까지 볼것.)

 

이전 시리즈인  Gradient Boost (Part1~3) 도 볼 것을 추천함.

 

 

기억해야할 Terms

 

  • Initial Prediction : 학습, 예측 모든 과정에서 사용되는 초기 예측값 (보통 레이블의 통계정보를 활용하여 설정)

  • Similarity : 해당 노드에 속한 sample들의 유사성 점수 (정규화 상수 reg_lambda 가 사용됨)

    • lambda 의 역할

      • Similarity 의 점수를 낮춘다.

      • Leaf 에 있는 sample의 수가 적을 수록 Similarity 점수를 더욱 많이 낮춘다.  (Gain이 작아짐)

      • 결국, pruning이 더 잘 일어나도록 만든다.

      • 더욱 일반화된 트리가 형성되도록 한다.

  • Gain : 트리가 분기함에 따라 높아진 Similarity 의 값 (분가를 시킬 변수를 결정할때 사용됨.)

  • 양자화(Quantization, feat.binning) : continuous 한 값을 갖는 변수의 모든 영역을 분기의 기준으로 삼을 수 없기에 영역을 지정하고 binning을 통해 진행함.

  • Missing Value 의 처리 - 완벽한 feature를 가지고 있지 않은 샘플에 대한 예측 및 고도화 전략

  • Pruning (Post prunning) : 일반화를 위한 pruning. (pruning 상수 gamma가 사용됨)

    • Pruning은 Gain 값을 기준으로 진행됨.

    • gamma가 0이라고 pruning 이 진행되지 않는 것은 아님.

  • Learning Rate (eta)

 

 

학습

 

매번의 Single Tree 학습은 아래와 같은 순서를 반복한다.

  1. 모든 Residual 계산 (이전 트리까지의 output 값을 이용)

  2. Build Tree (Gain, Similarity, lambda, max_depth 이용)

  3. Prune Tree (Gain, gamma 이용)

  4. 최종 output 값 계산 (learning_rate, lamba, initial_prediction 이용)

 

학습의 종료

  • n_estimator 만큼 트리를 반복적으로 생성 

  • 매 트리 생성 시 마다 dev 셋의 성능을 측정.

  • early_stopping_rounds 동안 성능의 향상이 없다면 신규 Tree 생성을 종료

 

수식 (Regression) - classification은 다름

 

Similarity = (Sum of Residuals)^2 / (# of Residuals)

 

Output = (Sum of Residuals)^2 / (# of Residuals)

 

Gain = LeftGain + RightGain - ParentGain

 

 

'기계학습' 카테고리의 다른 글

Optimizer 종류  (0) 2022.01.01
GCN (Graph Convolution Network)  (0) 2021.12.29
Gradient Boost for classification (binary)  (0) 2020.08.20
K-means Algorithm  (0) 2015.11.25

+ Recent posts