XGBoost 부스티드 트리 소개
XGBoost 부스티드 트리 소개 (Introduction to Boosted Trees)
XGBoost는 "Extreme Gradient Boosting"의 줄임말이에요. 여기서 Gradient Boosting이라는 용어는 Friedman의 논문 Greedy Function Approximation: A Gradient Boosting Machine에서 유래했어요. 이 문서에서는 지도 학습(supervised learning)의 요소를 이용해 부스티드 트리를 자기 완결적이고 원리 위주로 설명해요.
지도 학습의 요소
XGBoost는 지도 학습 문제를 다뤄요. 즉, 여러 특징을 가진 학습 데이터 x_i를 이용해 목표 변수 y_i를 예측하죠. 나무에 대해 배우기 전에 지도 학습의 기본 요소부터 짚어볼게요.
모델과 파라미터
지도 학습에서 모델은 입력 x_i에서 예측 y_i를 만들어내는 수학적 구조를 가리켜요. 흔한 예가 선형 모델로, 예측값이 입력 특징의 가중 선형 결합인 y_i = sum_j θ_j x_ij로 주어져요. 예측값은 회귀냐 분류냐에 따라 해석이 달라져요. 예를 들어 로지스틱 변환을 거치면 로지스틱 회귀에서 양성 클래스의 확률이 되고, 출력을 정렬할 때 순위 점수(ranking score)로 쓰일 수도 있어요.
파라미터는 데이터에서 학습해야 할 미정 부분이에요. 선형 회귀에서 파라미터는 계수 θ죠.
목적 함수: 학습 손실 + 정규화
회귀·분류·랭킹 같은 다양한 작업을 표현할 수 있고, 학습은 학습 데이터 x_i와 레이블 y_i를 가장 잘 맞추는 파라미터 θ를 찾는 문제예요. 그럴려면 모델이 학습 데이터를 얼마나 잘 맞췄는지 측정하는 목적 함수를 정의해야 해요.
목적 함수는 두 부분으로 이루어져요: 학습 손실과 정규화 항이에요.
obj(θ) = L(θ) + Ω(θ)
여기서 L은 학습 손실 함수, Ω는 정규화 항이에요. 학습 손실은 모델이 학습 데이터를 얼마나 예측력 있게 다루는지 측정해요. 흔한 L의 선택은 평균 제곱 오차(MSE)죠.
L(θ) = Σ_i (y_i - ŷ_i)^2
로지스틱 회귀에는 로지스틱 손실을 써요. 정규화 항은 사람들이 흔히 빠뜨리는 부분인데, 복잡한 모델이 과적합되는 걸 막는 역할을 해요.
트리 앙상블과 부스팅
XGBoost의 모델은 의사결정 트리의 앙상블(ensemble)이에요. 여러 트리가 합쳐져 예측을 만들고, 부스팅은 잘못 예측된 데이터에 다음 트리가 집중하도록 이어 붙여 나가는 방식이에요. 트리 앙상블을 어떻게 학습하는지에 대한 수학적 유도는 문서에서 이어서 다뤄요.
더 알아보기
- XGBoost 설치 — 설치 가이드
- XGBoost 파라미터 — 파라미터 문서
- 파라미터 튜닝 — 튜닝 지침