SPORTS/분석

축구 결과 예측을 위한 데이터 통계 분석기

김효랑이 2018. 11. 8. 22:37
728x90
반응형

 호야의 블로그 

[축구] 호야의 축구 결과 예측을 위한 데이터 분석법

안녕하세요. 호야입니다. 이번 글은 제가 어떻게 축구의 결과를 예측하는지 간단하게 설명하는 글입니다. 올해 초부터 준비하여 엑셀을 활용한 축구 통계 분석을 하였으며 과정과 결과를 보여드리겠습니다.


데이터 수집

먼저 분석을 위해선 기본적으로 데이터가 필요합니다. 축구에 있어서는 리그, 팀의 기록, 홈과 원정에서의 성적, 매치 데이터 등이 필요하죠. 이러한 데이터를 손으로 하나하나 입력하는 것은 단순 노동이 되어 사기를 많이 떨어뜨리게 됩니다. 그래서 저는 크롤링을 활용하였고, 웹에서 데이터를 불러와 분석하는 방법을 사용하였습니다. 매치 결과와 리그 기록이 이에 해당합니다. 가져온 데이터를 그대로 활용하지 않고, 저만의 알고리즘을 통해 새로운 가치있는 수치를 발견하여 활용하는 중입니다.

<크롤링한 리그 테이블>


아래와 같이 가져온 테이블을 활용하여 새로운 데이터(빅찬스, 위기횟수, 공격력, 방어력 등)들을 찾아내어 활용합니다. K리그1, K리그2, EPL 테이블을 활용 중이며 현재 K리그1만 안정화된 상태로 나머지 리그들도 안정화 작업을 거치는 중입니다.

<가치있는 데이터, 리그 테이블 정리>


아래와 같은 형식으로 불러와서 원하는 데이터로 활용할 수 있게 파싱하여 다음 과정으로 넘겨줍니다. 예를들어 영어 매치 기록을 번역하고, 날짜와 매치 결과를 파싱합니다.

<크롤링하여 형식에 맞게 파싱한 매치 로그>


아래와 같이 넘겨받은 로그를 기록하며, 예측한 로그를 함께 기록하고, 분석을 위해 다음 과정으로 값들을 넘겨줍니다.

<매치 로그 파싱하여 테이블로 정리>


위에서 결과와 예측을 분석하여 예측의 정확도를 구해냅니다. 2가지의 알고리즘이 있으며, 1번 알고리즘은 승과 패를 찾아내는데 탁월하나 무승부를 찾아내는데 어려움을 겪습니다. 2번 알고리즘은 무승부를 찾아내는 능력이 탁월하나 기복이 조금 있는 편입니다. 두가지 알고리즘을 고루 활용하여 최종의 결과를 예측하는데 사용합니다.

<매치 로그로 분석하여 결과와 성능을 예측>


아래 사진은 메인 알고리즘의 동작 화면입니다. 데이터들을 활용하여 알고리즘을 통해 수치를 구하고, 상대에 따른 수치를 비교 분석하여 보여줍니다. 포아송 분포를 활용하여 각 팀의 결과를 대충 예상 할 수 있도록 하였습니다. 아래 그림으로 11월 11일 매치 서울 vs 전남을 2-1 스코어가 가장 확률이 높을 것으로 예상하였고, 서울의 승리 또는 무승부를 예상하였습니다.

<분석과 활용을 위한 메인 동작 알고리즘>


위 같은 분석을 아래와 같이 바로 보고서로 만들 수 있으며 바로 이미지로 뽑아낼 수 있도록 하였습니다.

<매치에 대한 보고서를 자동 생성>


아직 완벽하지 않은 점점 진화 중인 분석기입니다. 너무 결과에 의존하지 마시고 발전하는 모습을 봐주시길 바라겠습니다.


후기 및 정리

앞서 말씀드렸듯 개인적인 취미로 공부중인 자료입니다. 데이터가 아직 1년 밖에 안 쌓였고, 보완을 위해 계속 바뀌는 알고리즘입니다. 저의 분석에 너무 의존하지 마시고, 피드백은 달게 받도록 하겠습니다. 부족한 통계 지식으로 열심히 공부중입니다. 많은 전문가 분들께서 달콤한 충고를 해주시면 감사하겠습니다.

읽어주셔서 감사합니다.



조금의 도움이 되셨다면 로그인 없이도 가능한 댓글과

왼쪽 아래 ♥공감 버튼을 꾹 눌러주세요! 




728x90
반응형