Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

XGBoost

XGBoost는 정규화된 결정 트리를 하나씩 추가하는 그래디언트 부스팅 라이브러리로, 테이블 형식 데이터에 널리 사용됩니다. 작동 방식과 코드를 설명합니다.

XGBoost(극한 그래디언트 부스팅)는 그래디언트 부스팅 의사결정 트리를 위한 오픈 소스 라이브러리이며, 표 형식 데이터에 가장 널리 사용되는 도구 중 하나입니다. Tianqi Chen은 워싱턴 대학교의 연구 프로젝트로 이를 시작해 2014년에 공개했으며, Carlos Guestrin과 함께 작성한 2016년 KDD 논문 XGBoost: 확장 가능한 트리 부스팅 시스템은 정규화된 목적 함수와 시스템 설계를 설명했습니다. DMLC 커뮤니티가 유지 관리하는 라이브러리는 Python, R, JVM, C에서 분류, 회귀, 순위 지정을 처리하고 CPU와 GPU에서 실행되며 Dask와 Spark를 사용해 규모를 확장합니다. 논문에 따르면 2015년 Kaggle 블로그에 공개된 대회 우승 솔루션 29개 중 17개가 XGBoost를 사용했습니다.

XGBoost의 작동 방식#

XGBoost는 앙상블을 순차적으로 구축합니다. 상수 예측값에서 시작해 부스팅 라운드마다 트리 하나를 추가하며, 각 트리는 앞선 트리들이 남긴 손실을 줄이도록 학습됩니다. 최종 예측값은 각 트리 출력의 합이며, 단일 트리가 지배하지 않도록 각 출력에 학습률(eta, 기본값 0.3)을 적용해 축소합니다. 논문에서 제시한 두 가지 개념이 각 트리의 구축 방식을 정의합니다.

  • 2차 목적 함수: 각 행에 대해 XGBoost는 현재 예측값을 기준으로 손실의 1차 및 2차 도함수, 즉 그래디언트 g와 헤시안 h을 계산합니다. 그래디언트 합이 G이고 헤시안 합이 H인 리프에는 가중치 -G / (H + λ)가 부여됩니다. 이는 2차 최적화기가 수행하는 것과 동일한 뉴턴 단계입니다.
  • 정규화 트리: 목적 함수에는 리프마다 페널티 γ을 추가하고, 리프 가중치에 L2 페널티 λ을 부과하며, 선택적으로 L1 페널티 α도 적용합니다. 분할은 이득 ½ [G_L²/(H_L + λ) + G_R²/(H_R + λ) − (G_L + G_R)²/(H_L + H_R + λ)] − γ이 양수일 때만 유지되며, 이를 통해 트리 구축 과정에 정규화를 적용하고 과적합을 제한합니다.

트리는 깊이가 제한되며(max_depth, 기본값 6), grow_policy="lossguide"을 통해 리프별 성장으로 전환하지 않는 한 레벨별로 성장합니다. 학습은 보통 검증 세트를 기준으로 조기 종료를 적용해 진행됩니다:

결측값, 속도, 확장성#

XGBoost의 희소성 인식 분할 탐색은 대치 단계 없이 결측값이 있는 테이블을 학습합니다. 각 분할에서 결측값이 있는 행을 왼쪽으로 보낸 경우와 오른쪽으로 보낸 경우를 모두 시도하고, 이득이 더 높은 방향을 해당 노드의 기본 분기로 선택합니다. 같은 메커니즘으로 원-핫 인코딩과 같은 희소 행렬의 저장된 항목만 스캔할 수도 있습니다. 다음 예제에서는 scikit-learn의 유방암 데이터 세트에서 전체 특성값의 30%를 숨기고 결측값을 그대로 사용해 학습합니다.

import numpy as np
import xgboost as xgb
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split

X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)

# Hide 30% of all values; each split learns a default branch for missing ones
rng = np.random.default_rng(0)
X_train_nan = np.where(rng.random(X_train.shape) < 0.3, np.nan, X_train)
X_test_nan = np.where(rng.random(X_test.shape) < 0.3, np.nan, X_test)

for name, train, test in [("complete", X_train, X_test), ("30% missing", X_train_nan, X_test_nan)]:
    model = xgb.XGBClassifier(n_estimators=200, max_depth=4, learning_rate=0.1)
    model.fit(train, y_train)
    print(f"{name}: accuracy {model.score(test, y_test):.3f}")

이 코드는 전체 데이터에서 테스트 정확도 0.972, 학습 및 테스트 세트 모두에서 값의 30%가 누락된 경우 0.951을 출력합니다.

속도를 높이기 위해 기본 hist 트리 메서드는 각 특성을 최대 256개 빈으로 구간화하고(max_bin) 빈 경계에서 분할을 탐색합니다. 이는 LightGBM이 사용하는 방식과 같으며, exact는 정렬된 모든 값을 열거합니다. device="cuda"을 설정하면 학습을 NVIDIA GPU로 옮기고, enable_categorical=True는 범주형 열을 기본적으로 분할하며, 외부 메모리 모드는 RAM보다 큰 데이터 세트로 학습합니다. 버전 2.1부터 모델은 기본적으로 바이너리 UBJSON 형식으로 저장됩니다.

  • LightGBM: Microsoft가 2016년에 개발한 부스팅 프레임워크로, 기본적으로 리프 단위로 트리를 성장시키며 그래디언트 기반 행 샘플링과 희소 특성 번들링을 추가합니다. 두 라이브러리 모두 이제 기본적으로 히스토그램을 사용하며 대부분의 기법을 공유합니다.
  • CatBoost: Yandex의 부스팅 라이브러리로, 대칭 트리를 구축하고 순서형 타깃 통계로 범주형 특성을 인코딩합니다.
  • 랜덤 포레스트: 부트스트랩 샘플로 심층 트리를 독립적으로 학습하고 결과를 평균하는 배깅 기법으로, 분산을 낮추며 튜닝이 거의 필요하지 않습니다.
  • 딥러닝: 이미지, 오디오, 텍스트와 같은 비정형 입력의 표준 기법이며, 신경망이 원시 데이터에서 특성을 학습합니다. 엔지니어링된 특성으로 이루어진 테이블 데이터에서는 부스팅 트리가 여전히 일반적인 기준 모델이며, TabPFN과 같은 테이블형 파운데이션 모델은 이제 소규모 데이터 세트에서 부스팅 트리와 경쟁합니다.

실제 적용 사례#

  • 사기 탐지 및 신용 위험 평가: 결제 회사는 금액, 가맹점, 위치, 기기, 계정 이력 특성을 바탕으로 각 거래의 점수를 산출합니다. 이는 XGBoost의 빠른 추론이 실시간 의사 결정에 적합한 핵심 예측 모델링 작업입니다.
  • 시각 검사: 제조 품질 시스템은 카메라와 센서 데이터를 결합합니다. Ultralytics YOLO26의 예측이 카메라 데이터를 제공합니다. result.summary()은 감지된 각 결함의 클래스, 신뢰도, 박스 좌표를 반환하며, 공장에서는 이를 부품별로 집계하고 온도 및 압력 측정값과 결합해 고장을 예측하는 XGBoost 모델의 특징으로 사용할 수 있습니다.
  • 순위 지정 및 클릭 예측: XGBRanker은 검색 결과의 순위를 지정하기 위해 기본적으로 rank:ndcg 목적 함수를 사용해 학습하며, 이진 분류기는 광고 클릭률을 예측합니다.
  • 대회 우승 문제: KDD 논문은 2015년 우승 솔루션의 기반이 된 작업으로 매장 판매 예측, 고에너지 물리 이벤트 분류, 멀웨어 분류, 대규모 온라인 강좌 중도 이탈 예측을 열거합니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요