[Competition] KBO 타자 OPS 모델링

Dacon에서 주최했던 이 대회는, 2019년 상반기 KBO 프로야구 타자들의 OPS를 예측하는 대회였다. 여태까지는 동아리 및 학회에서 머신러닝과 딥러닝 관련된 이론 공부와 코드로 실습만을 하다가, 처음으로 친구들과 함께 나간 대회라 더 뜻 깊었다. 첫 대회라 수상에 대한 기대보다는, 한 번 배워보고자하는 마음이 더 컸던 것 같다.

1. Introduction

  • 기간 : 2019년 2월~3월

  • Goal : 2019년 타자들의 상반기 OPS를 예측하는 모델 만들기

  • Metric : (타자의 타석 수를 반영한) WRMSE

OPS

OPS는 타자의 능력을 나타내는 대표적인 지표 중 하나이다. OPS는 On base Plus Slugging 의 약자로, 출루율과 장타율의 합을 뜻한다. 단순히 안타를 떄려내는 타격 능력만을 감안하는 것이 아니라, 팀에 도움이 될 수 있는 출루까지도 고려한 측면에서, 타율/홈런 수/안타 수 등 보다 보다 종합적인 지표라고 할 수 있다. ( 보통 OPS가 0.9 이상인 선수를 뛰어난 선수로 본다 )

  • 1) 출루율 : (안타 + 사사구) / (타수 + 사사구 + 희생플라이)
  • 2) 장타율 : [ 1루타 + (2*2루타) + (3*3루타) + (4*홈런) ] / 타수
  • OPS = 1) + 2)

2. Data

  1. Regular_Season_Batter.csv : KBO에서 활약한 타자들의 역대 정규시즌 성적을 포함하여 몸무게, 키 ,생년월일 등의 기본정보
  2. Regular_Season_Batter_Day_by_Day.csv: KBO에서 활약한 타자들의 일자 별 정규시즌 성적
  3. Pre_Season_Batter.csv : KBO에서 활약한 타자들의 역대 시범경기(정규시즌 직전에 여는 연습경기) 성적

3. Modeling

다음 과 같은 4가지의 모델을 사용하여, 각 타자별로 가장 예측이 좋았던 모델의 예측값을 사용했다. ( 각자 모델을 하나씩 맡아서 모델링을 했었고, 나는 이 중 3) Random Forest 모델을 담당하여 모델링을 진행하였다 )

1) 단순 Mean

2) ARIMA

3) Random Forest

4) RNN

​ 저 당시 대회 때만해도, 데이터 사이언스에 대해서 많이 알던 것은 아니었다. 심지어 RNN에 대해서는 들어본 적도 없었었고, Random Forest도 이론적으로 매우 깊게 공부 해본 것도 아니었다. 같이 대회에 출전한 조원들도 마찬가지로 이러한 대회 경험들이 많지 않았어서, 우리는 각자 하나씩 모델을 맡고, 이에 대해 깊게 공부해보면서 모델링을 해보는 작업을 해보기로 했다. 비록 만족스러운 성적을 거두지는 못했지만, 대회를 준비하는 과정에 있어서 많은 것을 배웠다고 생각해서 나름 만족했다. 이 첫 대회를 이후로, 여러 번의 대회들을 더 많이 나가게 되었다. 비록 이 대회 당시에는 거의 제일 막내(?) 수준의 실력으로 팀원으로 들어왔지만, 그 이후의 대회들에서는 주도적으로 조장이 되어서 학회 내에서 팀원들을 모집하여 여러 대회들도 나가고, 수상도 여러 번 하게 되었다. 아마 이 첫 대회의 경험들이 좋은 밑거름이 되지 않았나 싶다.