"붕어가 되어가는 나를 위해..."
추천 강의
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 학습은 아래와 같은 순서를 반복한다.
-
모든 Residual 계산 (이전 트리까지의 output 값을 이용)
-
Build Tree (Gain, Similarity, lambda, max_depth 이용)
-
Prune Tree (Gain, gamma 이용)
-
최종 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 |