← DataForge 홈

XGBoost 시각화

목적 함수 설계와 순차적 잔차 전파를 직접 조작합니다

XGBoost를 관통하는 핵심 알고리즘 원리

📉

1. 순차 가산 모델(Additive)

나무를 한 번에 다 만들지 않습니다. 이전 나무까지 구한 예측 오차(잔차)를 다음 나무가 전달받아, 징검다리를 놓듯 단계적으로 메꿔갑니다.

🎯

2. 맞춤형 목적 함수

합격 확률을 맞추는 이진 분류(Log-Loss)와 실제 시험 점수를 맞추는 선형 회귀(MSE)에 따라 손실 곡선의 기울기(Gradient)가 수학적으로 전환됩니다.

⚖️

3. 리프 규제 가중치

특정 노드가 오차를 무리해서 전부 책임지지 않도록, 가중치 계산 분모에 L2 규제항 \(\lambda\)를 더하여 극단적인 모델 성장(과적합)을 방어합니다.

활성 목적 함수

XGBoost 하이퍼파라미터 설정

0.3
3개
1.0
0.5

학습 데이터 및 실시간 잔차(Residual) 추적 테이블

Base Score: 0.5

우측 '실제값(y)'과 '현재 모델 예측값(\(\hat{y}\))' 사이의 차이가 바로 **잔차(Residual = \(y - \hat{y}\))**입니다.
새로운 나무는 이전 단계까지 누적 예측을 완료한 후, 남은 잔차를 완벽히 메꾸는 방향으로 계산을 시작합니다.

ID 📚 공부 시간 (h) 💤 수면 시간 (h) 🎯 출석률 (%) 실제값 (y) 최종 모델 예측값 (\(\hat{y}\)) 최종 잔차 (Residual)

부스팅 학습 체인 (각 트리들의 상세 기여도)

각 나무는 독립적이지 않으며 앞선 나무들의 오류(잔차)를 차례대로 물려받아 성장합니다.
나무를 클릭하여 각 나무가 어떤 feature와 오차 가중치를 이용해 학습되었는지 내부 구조와 가중치 수식을 검사해보세요.

XGBoost 트리 #1 상세 분석

리프 가중치 계산 공식: Weight = \(- \frac{\sum \text{Gradient}}{\sum \text{Hessian} + \lambda}\)

이번 트리 학습에 사용된 입력 '잔차'

앞선 나무들이 해결하지 못한 잔차(Residual)가 본 트리의 타겟값(\(g_i\))이 됩니다.

ID 공부 수면 출석 입력 잔차(오차)
이번 단계 잔차 절대 합계: 0.00
이전 단계 대비 개선도: 0.00%
트리 구조 및 분기점별 리프 가중치(Weight) 계산 Depth: 2
리프 가중치(Weight) 수치 분기 기준 피처 💡 화살표는 조건 부합 여부에 따라 좌/우로 나누어 집니다. (Yes: 왼쪽 / No: 오른쪽)

실시간 아디티브(Additive) 예측 시뮬레이터

가상의 학생 데이터를 변경하면, 각 트리가 예측한 보정치들을 순서대로 통과하며 최종 예측치를 점진적으로 보정하는 과정을 보여줍니다.

테스트할 가상 학생 프로필

6.0시간
6.5시간
85%

부스팅 예측 누적 연산 흐름

XGBoost 최종 판정
0.0%
누적 가중치 합 \(F(X)\)을 시그모이드 함수
\(\sigma(F(X)) = \frac{1}{1 + e^{-F(X)}}\) 로 변환한 최종 확률입니다.

🔍 수식으로 파헤치는 손실 함수별 오차 학습 구조

1 이진 분류 (Binary Log-Loss) 동작 공식

예측 모델의 마지막 지점에는 활성화 함수 \(\sigma(F(X)) = \frac{1}{1 + e^{-F(X)}}\) 가 배치되어 값을 실수에서 0과 1 사이의 확률값 \(p_i\)로 반전시킵니다.
이때, Log-Loss 손실 함수를 1차 미분(Gradient, \(g_i\))하고 2차 미분(Hessian, \(h_i\))하면 다음과 같습니다.

  • Gradient (\(g_i\)) = \(p_i - y_i\) (예측 확률에서 실제 참값 0 또는 1을 뺀 값)
  • Hessian (\(h_i\)) = \(p_i(1 - p_i)\) (이진 분류 확률 분포의 곡률 및 분산)
  • 가중치 공식 (\(w\)) = \(- \frac{\sum (p_i - y_i)}{\sum p_i(1-p_i) + \lambda}\)

2 선형 회귀 (Continuous MSE) 동작 공식

중간 예측치에 어떠한 비선형 활성함수도 씌우지 않으므로, 예측값 \(\hat{y}_i = F(X)\) 가 곧 결과 점수가 됩니다.
손실 함수가 평균 제곱 오차 \(L = \frac{1}{2}(y_i - \hat{y}_i)^2\) 이므로, 이를 모델 예측값 \(\hat{y}_i\)로 미분하면 다음으로 극도로 간소화됩니다.

  • Gradient (\(g_i\)) = \(\hat{y}_i - y_i\) (예측 점수에서 실제 시험 점수를 뺀 단순 오차)
  • Hessian (\(h_i\)) = \(1.0\) (2차 미분 시 변수가 소거되므로 항상 고정 상수)
  • 가중치 공식 (\(w\)) = \(- \frac{\sum (\hat{y}_i - y_i)}{N + \lambda}\) (단순 평균 오차에 L2 규제가 추가된 형태)

3 어떻게 잔차가 순차 전파되며 전송되나요?

첫 번째 나무가 기본 점수(Base Score)로부터 출발하여 발생하는 첫 번째 오차(잔차)를 수렴시킵니다.
두 번째 나무를 만들 때, 데이터 샘플의 타겟 정보는 원래의 정답이 아니라 "첫 번째 나무까지 마친 예측 모델의 남아있는 오차"가 타겟 데이터로 전환됩니다. 애니메이션 기능은 이 연쇄적인 잔차 재계산 및 누적합 연산을 한 눈에 투영합니다.