(사진=Flickr Dustin Nosler, Attribution 2.0 Generic (CC BY 2.0))
[야구공작소 이재현] 6승 5패 평균자책점 3.89. 미국의 야구 예측 시스템인 ZiPS가 올 시즌 전에 예측한 류현진의 성적이다. 그는 이런 예상을 비웃기라도 하듯 전반기에만 10승을 수확했다. 평균자책점은 리그 전체 1위, 한국인 최초로 메이저리그 올스타전 선발 투수가 되는 영예를 안았다.
사실 ZiPS와 같은 프로젝션은 류현진을 눈엣가시로 여길지도 모른다. 그가 기대와는 사뭇 다른 성적을 거두고 있기 때문이다. 류현진에 대한 예측은 빗나갔지만, 시스템의 예측 정확도 자체는 상당히 높다. 이런 시스템은 어떻게 선수의 미래를 계산하는 걸까? 야구 예측 시스템의 선조 격이라 할 만한 ‘Marcel’을 통해 알아보자.
Marcel
Marcel은 2004년 유명 세이버메트리션인 톰 탱고(Tom Tango)에 의해 만들어졌다. Marcel의 장점은 간단한 수식만으로도 꽤 정확한 예측을 한다는 점이다. 이 때문에 많은 사람이 애용했고 지금까지 쓰이는 예측 시스템의 기틀이 됐다. 최근 주목받는 ZiPS, Steamer 등의 프로젝션도 Marcel에서 많은 영향을 받았다.
초창기 Marcel의 예측 과정은 단순했다. 위의 요약이 거의 전부다. 타자, 투수에 따라 계산 방식에 차이가 날 뿐이다. 시간 여유만 있으면 누구나 어렵지 않게 성적 예측을 해볼 수 있다. 후술한 내용은 톰 탱고의 매뉴얼에 따라 실제로 예측을 해 본 결과다.
실제로 적용해 본 Marcel
앞서 설명한 방법으로 2018년 LA 다저스 선발 투수들의 성적을 예측했다. 언뜻 보기에도 두 성적의 차이가 크지 않아 보인다. Marcel의 장점이 여실히 드러나는 대목이다. 손쉽게 계산된 예측 이닝은 실제 성적과 평균 5이닝 정도의 차이만 보였다. 탈삼진 성적도 커쇼를 뺀 나머지 두 투수의 실제 기록과 비슷했다. 간단하면서도 믿음직스럽다.
물론 Marcel이 완전무결하진 않다. 최근 3년간의 기록이 부족한 선수들에 대해서 낮은 예측력을 보인다. 최근에 나온 프로젝션들에 비하면 성능도 떨어진다. 하지만 예측의 정확성이 이 프로젝션의 가치를 떨어트리진 않는다. 중요한 것은 Marcel이 지금까지도 많은 프로젝션에 영감을 준다는 점이다.
규칙 만들기와 패턴 찾기
그런데 꼭 Marcel과 같이 뭔가를 ‘더하고 빼고 곱하고 나누는’ 고전적 방법만 고집해야 할까? 꼭 그렇진 않다.이런 관념에서 벗어난 PECOTA라는 프로젝션이 있다. 미국의 유명한 통계학자이자 세이버메트리션인 네이트 실버가 2002년에 고안한 시스템이다. Marcel과 마찬가지로 유명하고 오래된 프로젝션 중 하나다. 2000년대 중반까진 뛰어난 예측력으로 명성을 얻었다.
유료로 운영되는 시스템이라 자세한 계산식은 공개되지 않았다.그렇지만 대중에 공개된 PECOTA의 대략적인 예측 방법은 해당 선수와 가장 비슷한 과거의 선수를 찾는 것이다. 우선 선수들의 능력, 포지션, 출전 경기 수 등을 고려해 해당 선수와 비슷한 정도를 수치화한다. 이를 토대로 성적이 얼마나 변화할지, 어떤 커리어 궤적을 보일지에 대한 결과를 낸다.
Marcel의 예측 방법이 유서 깊은 ‘규칙 만들기’의 일종이라고 한다면, PECOTA는 ‘패턴 찾기’를 이용한 예측 방법에 더 가깝다. 두 방법의 차이는 간단하게 말하자면 ‘사람이 일일이 규칙을 만드는가?’의 여부다. 현대에 들어선 일반적으로 ‘규칙 만들기’ 보다 ‘패턴 찾기’에 대한 중요성이 대두되고 있다.
어떤 문제의 패턴을 찾는 건 규칙을 계속해서 만들고 수정하는 것보다 훨씬 실용적이고 효율적이다. 최근 세계적으로 관심을 받는 머신러닝 분야가 이런 알고리즘을 이용한다. 패턴 인식을 통해 문제를 해결하는 방법인데, 생각보다 많은 곳에 응용할 수 있다.
의사결정나무
머신러닝엔 ‘의사결정나무’라는 문제 해결 방법이 있다. 전공자가 아니더라도 알고리즘을 표현한 그림을 보면 어떻게 구성됐는지 쉽게 이해할 수 있다. 매우 간단하지만, 분류나 예측 등 여러 방면에서 사용할 수 있다. 사실 정확도 자체는 높지 않지만, 머신러닝 분야에선 야구의 Marcel만큼이나 중요하다.
의사결정나무의 중요도가 높은 이유는, 이 원리를 이용해 파생된 여러 알고리즘 때문이다. 그중 하나인 ‘랜덤 포레스트’는 다수의 의사결정나무를 이용해 평균을 내는 방법이다. 빠른 속도와 높은 정확성을 가졌고 설명력도 비교적 나쁘지 않다.
기존의 예측과 다른 방법을 제안하려 이런저런 얘기를 꺼냈지만 요지는 최근 유행인 ‘패턴 찾는 방법’이다. 몇 프로젝션의 공개되지 않은 계산식엔 이미 관련 알고리즘들이 포함되어 있을 가능성이 농후하다. 심지어 구종을 분류하는데도 딥러닝의 힘을 빌리고 있으니 말이다.
새로운 방식으로 예측해보자
본문에서 예측할 성적은 투수의 ‘탈삼진 비율(K%)’이다. 다른 성적도 비슷한 방법으로 값을 도출할 수 있지만 예측하는 성적에 따라 각각의 변수들을 조절해야 하는 복잡함이 생겨 아쉽지만 생략했다. 분석을 위해 미리 정해 둔 조건은 다음과 같다.
① 나이를 제외하고 알고리즘에 사용할 모든 변수는 구종 분석 자료다(구종별 체감 속도, 무브먼트 합계, 구사 비율, 회전수, 스트라이크 비율). ② 충분한 정보를 얻기 위해 메이저리그에서 1,000구(약 6~70이닝) 이상 던진 투수들을 대상으로 한다.
③ 2015~2018년의 자료로 모형을 만들고 테스트한 뒤, ‘②’의 조건을 만족하는 선수 66명의 2019년 성적을 예측한다. ④ 메이저리그 관련 사이트에 게재됐던 K%에 대한 프로젝션의 오차 수준과 비교한다. 다만 비교 자료는 2015년의 오차이고 필자가 사용한 알고리즘의 오차는 2019년의 것이니 성능의 우수함 자체는 비교할 수 없다.
결론부터 말하자면 상당히 고무적인 결과가 나왔다. 비교 대상 간에 평균 0.150 정도의 오차를 보였는데 랜덤 포레스트 알고리즘을 이용한 예측도 그와 비슷하거나 낮은 오차를 형성했기 때문이다. 패턴 인식 알고리즘의 한 종류인 ‘알고리즘B’도 나쁘지 않은 결과를 냈다.
알고리즘에 가장 많은 영향을 줬던 10개의 변수 중 포심 패스트볼의 체감 속도, 회전수 그리고 구사 비율이 최상단에 있었다. 변화구보다 우선 패스트볼의 위력이 중요하다고 해석할 수 있다. 혹은 포심이 가장 대중적이고 표본 수가 많기 때문일 수도 있겠다. 뒤이어서 체인지업, 슬라이더의 영향력도 컸다.
중요도 하위 10개의 변수는 대체로 0에 가까운 수치를 보였다. 포크볼, 너클볼, 너클커브 등에 관련한 변수들이 이름을 올렸다. 포크볼의 중요도가 낮은 이유는 스탯캐스트의 엄격한 분류 방식 때문으로 보인다. 우리가 KBO리그에서 포크볼이라고 부르는 구종은 스탯캐스트에서 대부분 스플리터로 분류된다. 보통 메이저리그 한 시즌 구종 데이터 70만 개 중 포크볼로 분류되는 건 300개가 채 되지 않는다.
함부로 예상하지 마라, 특히 미래에 대해서
오래된 야구 격언 중에 미래를 함부로 예상하지 말라는 말이 있다. 그러나 오늘은 알고리즘이라는 도구를 등에 업고, 비교적 함부로 무언가를 예상해보았다. 많은 선수, 다양한 성적을 예측하진 않았고 다른 방법들과 유의미한 비교조차 불가능했다. 하지만 본문에서 사용한 방법이 선수 예측이란 분야에서 어느 정도 가능성을 보인다는 점만 기억해주면 좋을 것 같다.
예측 시스템이 나날이 발전하여 정말 뛰어난 성능을 갖춘다고 한들, 선수의 미래를 온전히 예측할 수 있을까? 아니다. 물론 실제와 가까운 예측을 따르면 원하는 결과를 얻을 확률이 높아진다. 하지만 그것이 항상 확실한 승리를 가져올 수 있는가? 선수 평가의 절대적인 잣대가 될 수 있는가? 아니다. 야구는 결국 선수, 사람이 하는 것이다. 올 시즌 류현진처럼.
기록 출처:
Baseball Savant
FanGraphs Baseball
에디터=야구공작소 조예은
참고:
ⓒ야구공작소. 출처 표기 없는 무단 전재 및 재배포를 금합니다. 상업적 사용은 별도 문의 바랍니다.
댓글 남기기