본문으로 건너뛰기

XGBoost를 활용한 UFC 경기 결과 예측 모델 구축 사례

XGBoost와 SHAP을 활용하여 UFC 선수의 상대적 전력 차이를 분석하고 71.6%의 정확도로 승패를 예측하는 웹 애플리케이션 구축 사례이다.

실용적 조언

  • 스포츠 승패 예측 모델을 만들 때 두 팀/선수의 스탯 차이를 특징으로 사용하면 SHAP 해석이 훨씬 직관적이다.
  • LLM에 원시 데이터를 직접 계산시키지 말고, 결정론적인 파이프라인에서 계산된 결과값만 전달하여 할루시네이션을 방지하라.

섹션별 상세

01
XGBoost 이진 분류기를 핵심 모델로 채택하여 두 선수 간의 승패를 예측하도록 설계했다. 입력 데이터는 두 선수의 타격, 그래플링, 신체 조건, 최근 전적 등 26가지 특성을 '선수 A - 선수 B' 형태의 차이값(differential features)으로 계산하여 처리한다. 이를 통해 모델이 절대적인 수치보다 두 선수 간의 상대적인 우위를 학습하도록 유도하여 예측력을 높였다.
02
데이터 누수를 방지하기 위해 엄격한 시계열 기반 특징 추출 방식을 적용했다. 모든 학습 샘플은 해당 경기 날짜 이전에 발생한 경기 데이터만을 사용하여 통계치를 계산하도록 구현했다. 이러한 설계는 모델이 미래의 정보를 미리 알고 학습하는 오류를 차단하여 실전 예측에서의 신뢰성을 확보하는 데 기여했다.
03
모델의 예측 근거를 사용자에게 설명하기 위해 TreeSHAP과 LLM을 결합한 파이프라인을 구축했다. SHAP을 통해 각 특성이 예측 결과에 미친 영향력을 수치화하고, 이 데이터를 Claude 모델에 전달하여 자연어 형태의 경기 분석 리포트를 생성한다. LLM은 수치 계산에 관여하지 않고 확정된 데이터의 서술만을 담당하여 정보의 정확성을 유지한다.
04
모델 성능 최적화를 위해 5-폴드 층화 교차 검증(5-fold stratified CV)과 조기 종료(early stopping) 기법을 사용했다. XGBoost의 하이퍼파라미터인 n_estimators=500, max_depth=5 등을 설정하고 검증 데이터셋에서의 성능 저하를 감시하여 과적합을 방지했다. 결과적으로 테스트 데이터셋에서 약 71.6%의 정확도를 달성하며 유의미한 예측 성능을 보였다.

용어 해설

XGBoost
Gradient Boosting 프레임워크 기반의 머신러닝 알고리즘으로, 결정 트리들을 앙상블하여 예측 성능을 극대화합니다. 이 프로젝트에서는 승패를 예측하는 이진 분류기로 사용되어 높은 정확도와 효율적인 연산 성능을 제공합니다.
샤플리 가산 설명(SHAP)
게임 이론을 바탕으로 머신러닝 모델의 개별 예측 결과에 각 특성(feature)이 기여한 정도를 수치화하는 기법입니다. 이를 통해 모델의 블랙박스 내부를 해석하고 특정 선수의 승리 요인을 정량적으로 파악할 수 있습니다.
데이터 누수 방지(Leakage Prevention)
모델 학습 시 미래의 정보가 훈련 데이터에 포함되어 성능이 왜곡되는 것을 막는 기법입니다. 이 프로젝트에서는 특정 경기 시점 이전의 데이터만 사용하여 특징을 생성함으로써 실전 예측 환경과 동일한 조건을 유지합니다.
층화 교차 검증(Stratified Cross-Validation)
데이터셋을 나눌 때 타겟 클래스의 비율을 일정하게 유지하며 모델의 일반화 성능을 평가하는 방법입니다. 승패 비율이 불균형할 수 있는 격투기 데이터에서 모델의 신뢰도를 객관적으로 검증하기 위해 사용됩니다.

언급된 도구

XGBoost추천

승패 예측을 위한 이진 분류 모델

SHAP추천

모델 예측 결과에 대한 특성별 기여도 분석

Claude추천

SHAP 분석 결과를 기반으로 한 자연어 설명 생성

언급된 리소스

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 04. 29.수집 2026. 04. 29.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.