Track2 Idea Development : University of Seoul Public AI Competition

Idea | University of Seoul | Sport | Development | MVP | Qualitative Evaluation

  • moneyIcon 3,000,000 KRW
  • 583 Users Completed

 

[데이터헌터스]MatchDNA

공동작성자

stroke
2026.01.12 03:50 93 Views language

이 코드는 대회에서 제공된 raw_data.csv(이벤트 로그)와 match_info.csv(경기 메타) 두 파일만을 입력으로 사용한다. 이벤트 기록을 좌표, 이동 거리, 성공 여부, 이벤트 유형 기준으로 가공한 뒤 선수·팀·경기 단위로 재구성한다.

선수 단위에서는 main_position을 기준으로 역할군을 단순화해 GK, DEF, ATT로 분류한다. 각 이벤트를 패스, 슛, 골, 태클, 인터셉트, 클리어, 캐치 등 행동 플래그로 변환하고, 이를 선수별로 집계해 행동 분포를 수치화한다. 역할군별로 공격(피니셔·침투러너·슈팅머신), 수비(볼탈취·차단벽·걷어내기), 골키퍼(선방형·스위퍼·배급형) 세 가지 키워드 점수를 계산하며, 표본 수가 적은 선수는 가중치를 낮춰 과대평가를 방지한다. 같은 역할군 내 퍼센타일 비교를 통해 대표 키워드를 선정해 player_keyword_final.csv로 저장한다.

계산된 선수 지표가 역할 구분에 유효한지 확인하기 위해 RandomForest 기반 역할 분류 모델을 보조적으로 학습하고, 정확도와 피처 중요도를 기록한다.

팀 단위에서는 경기-팀 기준으로 이벤트를 집계해 전술 지표를 계산한다. 짧은 성공 패스 패턴, 패스 외 성공 비율, 상대 진영 전진성, 긴 성공 패스 비율, 전반 이벤트 비중을 산출하고 퍼센타일 스케일로 변환한 뒤, 가장 높은 지표를 해당 경기-팀의 전술 라벨로 지정한다. 이를 팀별로 빈도 집계해 대표 전술 라벨을 도출하고 team_labels.csv로 저장한다.

경기 단위에서는 match_info.csv를 기준으로 경기 테이블을 구성하고, 이벤트 수·파울 수·슈팅 수·홈팀 이벤트 비율을 요약 피처로 계산한다. 경기 라벨은 홈팀의 전술 라벨을 사용하며, 최종 결과는 웹 활용을 위해 deploy 폴더로 정리된다.

또한 산출된 CSV 결과를 활용해 HTML 기반 정적 웹페이지를 구현하여, host 환경에서 선수·팀·경기 단위 분석 결과를 직접 확인할 수 있도록 시각화까지 완료했다.

PDF
YOUTUBE
Code