Project4. 2021 빅콘테스트 | 데이터분석 분야 | 챔피언리그 | 스포츠 테크

DonghyunAnn·2021년 11월 1일
1

포트폴리오

목록 보기
4/4
post-custom-banner

✔ Summary

Task

  • 한국 프로야구에 맞는 배럴 정의
  • 프로야구 배럴을 통한 타자 OPS (= 장타율 + 출루율) 예측

Tools: Python
ML ALgoritms: LASSO Regression
Evaluation: MSE

📊 사용한 데이터

📈 제공 데이터

  • 2018 ~ 2021 전반기 KBO 선수 및 선수코드

  • 2018 ~ 2021 전반기 타구 데이터

  • 2018 ~ 2021 전반기 KBO 선수 기록

📉 수집데이터

  • STATIZ 2018~ 2021.09.13 KBO 선수 기록

📝Issue

⚾ 배럴의 정의

  • 장타일수록 발사각과 타구속도가 일정한 범위로 수렴하는 것을 확인
  • 기존에 사용되던 배럴의 기준(타율 0.500 이상, 장타율 1.500이상)을 적용
  • 140km 이상의 타구는 배럴 기준을 충족 시킬 수 있지만 140km ~ 145km와 같이 속도를 세분화했을때 배럴 기준에 부합하지 않았음
  • | 146km~150km / 24°~30° | 151km~155km / 10°~44° | 156km 이상 / 1°~60° |로 배럴을 정의
  • 타구속도가 빠를수록 발사각이 넓어지는 것을 확인했으며, 타구속도가 배럴에 가장 중요한 요소임을 확인할 수 있었음

🤔 Feature의 부족

  • 2021시즌 타자 OPS, 출수율, 장타율을 예측을 위해선 구체적인 성적 데이터가 필요함
  • STATIZ 사이트에서 2018~ 2021.09.13 까지의 KBO 선수 기록을 크롤링함
  • 크롤링한 데이터 문자열 정제, 투수 기록 제거
  • 동명 이인 및 소속팀 표기오류(이적한 시즌, 팀 표기 중복) 이슈 해결 후 기존 데이터의 선수코드 조인
  • 정제한 크롤링 데이터와 타자별 타구속도및 발사각 조인 (선수코드 사용)

👨‍💻 시계열 Feauture 추가 및 모델링

  • 타자의 미래 성적을 예측하는 것이기 때문에 시계열적인 요소가 필요
  • 1년전 성적(STATIZ에 기록된 성적) 칼럼 추가
  • 선수별 18시즌 이후부터 누적기록(평균) 칼럼 추가
  • 최종 분석 데이터를 1년 전 시즌 성적, 2년 전 시즌 성적, 누적 성적으로 구성
  • 신인의 경우 과거 데이터(결측치)를 모두 -1로 처리

🧐 개선방향

  • 적어도 3년 전 과거 성적을 칼럼으로 추가(시계열 특성)하면 성능이 더 개선될 것으로 보임(1년전 성적, 2년전 성적, 3년전 성적, 누적 성적, 타겟 OPS)
  • 성적의 극단에 있는 선수일수록 오차가 커지는 것을 발견함. 이를 해결하기 위해 직전년도 OPS에 따른 보정치를 예측치에 더해주면 더 좋은 정확도가 나올 것으로 사료됨(ex: 직전시즌 OPS 0.8 이상은 +0.125)
  • 칼럼의 수가 많다보니 다중공선성이 존재하고 이를 해결하기 위해 LASSO Regression Model을 선택함, Feature Selection에 있어서 다른 시도를 적용해도 좋을 것으로 보임

😀 배운점

  • 부족한 데이터 보충을 위해 크롤링을 하고 이를 전처리하는 과정에서 데이터 핸들링 스킬을 조금 더 익힐 수 있었음
  • 시계열 속성을 추가하는 개념에 대해 구체화 시킬 수 있었다는 것이 가장 큰 성과
  • 시간에 쫓겨 하다보니 섬세한 분석을 진행하지 못했음 (ex: 보정치), 이를 통해 분석에 있어서 시간관리에 대해 다시 한 번 돌아보고 점검하게 됨

Github

EDA 및 모델링 코드

profile
운동을 좋아하는 데이터 사이언티스트
post-custom-banner

1개의 댓글