진행사항
: 데이터 양을 늘리기 위해 데이터를 추가로 스크랩했다.
앞서 말했듯이 생각하지 못했던 게 2280개로 이미 경기 수가 제한된 상황에서 추가 데이터를 수집하는 것은 그저 다양성을 더 가져오는 것에 불과하다는 것.
예측을 높이기 위해서 중요도가 적은 열을 삭제하는데, 우리는 오히려 반대로 가고 있었다. 다만 현재 데이터에 만족하지 않고 더 좋은 데이터를 찾아 나서는 우리의 의지에 나는 의의를 두기로 했다.
어떤 데이터를 가지고 갈 것인가?
understat 데이터에서 홈 경기 팀과 원정 경기팀 이름을 모두 추출하기 어려워 부족해 구할 수 있는 xG 값 가져오고, 추가로 스크랩한 자료의 열을 활용해서 진행하기로 했다.
#새롭게 추가한 데이터의 예측요소들 (이중 필요한 부분만 사용)
Date = Match Date (dd/mm/yy)
Time = Time of match kick off
HomeTeam = Home Team
AwayTeam = Away Team
FTHG and HG = Full Time Home Team Goals
FTAG and AG = Full Time Away Team Goals
FTR and Res = Full Time Result (H=Home Win, D=Draw, A=Away Win)
HTHG = Half Time Home Team Goals
HTAG = Half Time Away Team Goals
HTR = Half Time Result (H=Home Win, D=Draw, A=Away Win)
Match Statistics (where available)
Attendance = Crowd Attendance
Referee = Match Referee
HS = Home Team Shots
AS = Away Team Shots
HST = Home Team Shots on Target
AST = Away Team Shots on Target
HHW = Home Team Hit Woodwork
AHW = Away Team Hit Woodwork
HC = Home Team Corners
AC = Away Team Corners
HF = Home Team Fouls Committed
AF = Away Team Fouls Committed
HFKC = Home Team Free Kicks Conceded
AFKC = Away Team Free Kicks Conceded
HO = Home Team Offsides
AO = Away Team Offsides
HY = Home Team Yellow Cards
AY = Away Team Yellow Cards
HR = Home Team Red Cards
AR = Away Team Red Cards
HBP = Home Team Bookings Points (10 = yellow, 25 = red)
ABP = Away Team Bookings Points (10 = yellow, 25 = red)
문제사항
: 수집한 데이터와 xG값의 경기가 일치하지 않아 데이터 수가 감소
xG 값은 골 결정력으로 승부 예측에 중요한 요소이기에 understat 데이터와 다른 데이터를 합치는 과정에서 데이터 수가 크게 감소하는 현상이 일어났다
2280개와 2105개인데 pd.merge를 하면 833개로 축소되어서 처음에 코드 문제인가 해서 팀원들 모두 각자 진행해보았지만, 그게 변화하지 않았다.
그래서 어떤 것이 문제점인지 함께 모여서 데이터를 살펴보기로 했다.
나는 아무리 생각해도 데이터 자체의 문제인 것 같아서 동일한 데이터를 다시 수집했고,
23년 자료까지 합쳐서 2394개 데이터를 확보했다.
그리고 그 과정에서 HomeTeam과 AwayTeam의 이름이 다르다는 것을 발견
수정 후 자료를 결합했을 때는
➡️ 1829개까지 자료를 확보할 수 있었다.
최대로 구할 수 있는 2280개에서 451개 정도가 모자랐기에 데이터를 같이 살펴보기로 했다.
구간을 나눠서 날짜와 팀이 맞지 않은 경기를 골라냈는데, (이름 등 오류가 있을 것으로 판단해서) 완전히 다른 날, 다른 경기들이 많아서 결국 수정, 대체, 하드코딩으로 하기 어렵다고 판단 ➡️ 1829개로 진행하기로 하였다.
이제 예측모델을 돌려보자!