[야구 칼럼] Similarity Scores로 닮은꼴 선수 찾아내기 + 스탯티즈 크롤링해서 직접 계산기 만들기
카테고리: Baseball
1. intro
흔히 닮은 유형의 선수라고 하면, 체형이나 타격폼 내지는 투구폼이 비슷한 경우를 떠올린다. 부드럽고 편안해보이는 투구폼으로 장원삼, 장원준이 자주 비교되고, ‘특급 잠수함’ 정대현과 박종훈이 한 카테고리로 묶이는 것처럼 말이다.
그러나 이렇게 겉으로 드러나는 모습에만 집중하면, 외적인 면은 닮은 꼴일지 몰라도, 실제 기록상으로도 닮아있다고 볼 순 없다.
반갑게도, 기록적인 측면에서 닮은꼴 선수를 찾아낼 수 있는 지표가 있다. 바로 ‘Baseball Reference’에서 고안한 ‘Similarity Scores’라는 지표다.
Baseball Reference의 Similarity Scores 소개 글 링크
이 지표는 1,000점에서 시작하여 두 선수의 기록이 상이할수록 점수를 많이 차감하는 매커니즘을 갖고 있다. 반대로 말하면, 두 선수의 기록이 유사할수록 점수가 1,000점에 가까울 것이다.
가령, 양현종의 Similarity Scores를 나열한다 하면, 승리를 많이 기록하는 이닝이터 성격의 선발투수가 높은 점수를 랭크하고 있을 것(양현종이 그러한 기록을 보유한 투수이기에)이다. 반면에 이닝 수와 승 수가 적고 세이브가 많은 마무리 투수는 낮은 점수를 랭크하고 있을 것이다.
주의해야 할 점은, 이 점수는 단순히 특정 선수와 얼마나 닮아있는지를 나타내는 지표로, 점수가 낮다고 하여 그 선수가 모자란 선수인 것은 절대 아니다.
2. 지표 계산법
이제 본격적으로 기록 차이에 따른 삭감 정도를 알아보자.
타자는 아래의 기록이 차이가 날 때마다 1점씩 삭감된다.
- 20경기 차이마다 1점 삭감
- 75타수 차이마다 1점 삭감
- 10득점 차이마다 1점 삭감
- 15안타 차이마다 1점 삭감
- 2루타 5개 차이마다 1점 삭감
- 3루타 4개 차이마다 1점 삭감
- 홈런 2개 차이마다 1점 삭감
- 타점 10개 차이마다 1점 삭감
- 볼넷 25개 차이마다 1점 삭감
- 삼진 150개 차이마다 1점 삭감
- 도루 20개 차이마다 1점 삭감
- 타율 1리 차이마다 1점 삭감
- 장타율 0.002 차이마다 1점 삭감
또한 타자는 수비 포지션에도 차이가 있기 때문에 각 포지션마다 가중치가 정해져 있다. 그리고선 두 선수의 포지션 차이를 뺀 값이 삭감된다.
- 포수 240점
- 유격수 168점
- 2루수 132점
- 3루수 84점
- 외야수 48점
- 1루수 12점
- 지명타자 0점
예시를 들어보자. 리그를 대표하는 1루수인 강백호의 Similarity Scores를 나열할 때, 외야수 이정후는 48-12=36점의 삭감을 받을 것이다.
이제 투수의 경우를 살펴보자.
- 1승 차이마다 1점 삭감
- 2패 차이마다 1점 삭감
- 0.002 승률 차이마다 1점 삭감 (최대 100점)
- 0.02 평균자책점 차이마다 1점 삭감 (최대 100점)
- 등판 10경기 차이마다 1점 삭감
- 선발 등판 20경기 차이마다 1점 삭감
- 완투 20경기 차이마다 1점 삭감
- 50이닝 차이마다 1점 삭감
- 피안타 50개 차이마다 1점 삭감
- 탈삼진 30개 차이마다 1점 삭감
- 볼넷 허용 10개 차이마다 1점 삭감
- 완봉 5경기 차이마다 1점 삭감
- 세이브 3개 차이마다 1점 삭감
투수 역시도 던지는 손, 선발이냐 계투냐에 따른 차이가 있다. 같은 선발인데 던지는 손이 다른 경우 10점이, 계투일 경우엔 25점이 삭감된다. 계투의 경우 승률 차이에 따른 점수 삭감은 1점이 아닌 0.5점이다. 여기서 계투란 선발보다 계투로서 출전이 많으며 평균 4이닝 이하를 던진 투수를 말한다. 그리고 승률 차이에 따른 점수 삭감은 승패 차이에 따른 삭감의 1.5배를 넘을 수 없다.
3. MLB의 Similarity Scores 맛보기
베이스볼 레퍼런스에선 선수 개개인별로 Similarity Scores를 제공하고 있다. 현 MLB를 대표하는 타자인 마이크 트라웃의 지표를 보면, 가장 닮은 선수는 20세기 초를 풍미한 중견수 핵 윌슨이다.
그런데 통산 홈런이 244개인 핵 윌슨은 커리어 동안 트라웃만큼의 펀치력을 가졌다고 보긴 어렵다. 그럼 왜 두 선수가 닮은 꼴로 묶인 것일까?
해답은 간단하다. 통산 커리어를 기준으로 Similarity Scores를 산출해서 그렇다. 트라웃은 아직 29세의 젊은 선수고, 커리어동안 더 풍부한 누적스탯을 기록할 수 있다. 비교대상을 은퇴선수로 잡기엔 무리가 있어보인다. 그럼에도 불구하고, 은퇴선수와 비교를 해야한다면 그 선수의 29세까지의 스탯을 기준으로 Similarity Scores를 산출하면 될 것이다. 때문에 베이스볼 레퍼런스에선 동 나이대 Similarity Scores도 제공하고 있다.
현재 트라웃의 나이인 29세를 기준으로 순위를 다시 매기면, 통산 홈런 407개의 1333타점을 기록한 듀크 스나이더가 1위에 랭크해있다. 즉, 29세의 스나이더가 현재 트라웃과 가장 유사한 선수라는 의미이다. 우리에게 익숙한 ‘괴수’ 블라디미르 게레로는 3위에 랭크했다.
4. 국내 선수 Similarity Scores를 직접 가공해보기
이제 Similarity Scores에 대한 대략적인 설명이 끝났다. 안타깝게도 국내에선 베이스볼 레퍼런스처럼 선수별 Similarity Scores를 제공해주는 곳이 없다.
때문에, 필자는 엑셀로 이 스코어를 계산하는 툴을 만들고, 국내 선수들의 Similarity Scores를 직접 살펴보기로 했다.
이 때 대상이 되는 선수들은 2022시즌에 뛴 타자만을 기준으로 했다. 투수의 경우 추후에 새로 계산기를 만들어볼 계획이다.
스탯티즈에서 2022시즌 활약한 타자들의 정보를 BeautifulSoup
모듈을 통해 python으로 크롤링해왔고, 이 정보를 시트에 붙여넣어 자동계산기를 만들었다.
크롤링하는 자세한 과정은 추후에 python 소스코드를 소개하는 글을 업로드할 예정이다.
메모표시가 된 곳에 원하는 선수의 이름을 입력하면, similarity socres가 자동으로 계산된다.
위 사진처럼 해당 선수와 유사한 선수 top10을 자동으로 출력해준다.
아래 깃허브 링크로 이동하면 필자가 만든 Similarity Scores 계산기 엑셀파일을 볼 수 있다.
깃허브 링크 -> Similarity Scores 소스 보러 가기