분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
[데이터헌터스]MatchDNA
공동작성자
이 코드는 대회에서 제공된 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 환경에서 선수·팀·경기 단위 분석 결과를 직접 확인할 수 있도록 시각화까지 완료했다.
DACON Co.,Ltd | CEO Kookjin Kim | 699-81-01021
Mail-order-sales Registration Number: 2021-서울영등포-1704
Business Providing Employment Information Number: J1204020250004
#901, Eunhaeng-ro 3, Yeongdeungpo-gu, Seoul 07237
E-mail dacon@dacon.io |
Tel. 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved