SlideShare a Scribd company logo
1 of 68
Download to read offline
팀장 임낙준(crossrobot@yonsei.ac.kr) 김새민(saemin3781@yonsei.ac.kr) 손예진(yejinson@yonsei.ac.kr)
프로야구 배럴(Barrel)을 통한
타자성적예측
Team_ 맨땅에 헤딩
CONTENTS
01 문제정의 및 데이터 파악
02 배럴(Barrel) 타구 기준
03 데이터 전처리 및 EDA
04 예측모델 선정 검증
05 최종 모델 구축
06 결과 도출
07 결론 및 느낀 점
문제정의 및 데이터파악
01
01 문제정의 및 데이터 파악
문제1 : KBO 배럴 정의
MLB에 따르면, 배럴 타구는 평균적으로 타율 0.5, 장타율 1.5 이상을 생산하는 잘 맞은 타구를 말한다.
미국 선수들의 타구 데이터로 배럴 타구 기준을 세운 결과,
타구 속도가 98마일 이상인 동시에 발사각이 26~30°인 타구 등이 배럴 타구로 정해졌다.
그러나 이러한 기준은 미국 선수들을 기준으로 정해 졌기에 한국 프로 야구 배럴 기준으로 삼기에는 부적절하다.
우리는 평균적으로 ‘타율 0.5, 장타율 1.5 이상’ 을 생산한다는 MLB의 배럴 타구 정의를 그대로 사용하되,
구체적으로 한국 프로야구 토양에 맞는 배럴 존을 정의하기로 했다.
1) 문제 정의
01 문제정의 및 데이터 파악
1) 문제 정의
SLG와 OBP를 각각 예측한 뒤, 이를 합한 값을 OPS 예측값으로 한다.
(예외: VAR 모형은 OPS를 직접 예측하는 것이 정확도가 높아,
SLG 예측값과 OBP 예측값을 합한 값이 아닌 OPS를 직접 예측한 값을 채택함.)
문제2 : KBO 배럴 기준 기반으로 타자 성적 예측 모형 개발
타자 성적 예측에 주로 이용되는 세이버 매트리스 지표와
앞서 정의한 배럴 기준으로 도출한 배럴 타구 지표를 이용하여
2021 프로야구 정규시즌 중 9월 15일 ~ 10월 8일 간
선수 10명의 OPS, SLG, OBP 예측
01 문제정의 및 데이터 파악
선수
2018 ~ 2021
타자 기본
2018 ~ 2021
HTS
2018 ~ 2021
팀
2016-2021
경기일정
2021
2) 기본 제공 데이터
선수 기본 정보 선수 시즌 기록
PA, SLG, HR, …
선수 타구 결과
각도∙속도
팀 ID : 팀 이름
KBO 경기일정
* 9월 15일 ~ 10월 8일
경기 정보
01 문제정의 및 데이터 파악
STATIZ 10명 선수의 경기별
(2018-2021.09.14)
기록데이터
2) 크롤링 데이터
STATIZ 선수 연도별(2020-2014)
기록 데이터
배럴(Barrel) 타구 기준
02
02 배럴(Barrel) 타구 기준
배럴(Barrel hit) 타구란?
MLB는 ‘평균적으로 타율 0.5, 장타율 1.5 이상을 생산하는 타구‘ 를 배럴 타구라
한다.
배럴존 (Barrel Zone) 이란?
배럴 타구를 판단하는 배럴 존(Barrel Zone) 이라는 구체적인 발사각도와 발사
속도 기준
MLB의 배럴 기준
발사속도 최소 98mph부터 시작하고, 해당 속도에서는 발사각이 26~30-도가
만들어질 경우 배럴 타구로 정의된다. 100mph~116mph까지 1mph증가할
때마다 배럴 타구가 만들어지는 타구 발사각도의 범위가 2~3도 증가하는 것으로
알려져 있다.
한국형 배럴 존 정립의 필요성
한국의 선수들과 미국 타자들의 신체조건 등의 차이로 인해
타구 분포의 차이가 발생하여 MLB의 배럴존을 KBO에 직접 적용하기 어려움
1) 배럴 타구 기준 목표
→평균타율 0.5, 평균 장타율 1.5를 생산하는 한국형 배럴 존 정립을 목표로 삼음
02 배럴(Barrel) 타구 기준
4개년의 HTS데이터 활용하여
• 타구 각도와 속도의 모든 조합 &그에 따른 타구 결과 시각화
• 발사속도와 발사각도에 따라 타구 결과가 달라지는 패턴 확인
• 속도와 각도 조합으로 배럴 존을 고안하는 것의 타당성 검증
2) EDA : 타구속도와 타구각도에 따른 타구결과 시각화
X축 : 발사속도
Y축 : 발사각도
02 배럴(Barrel) 타구 기준
‘장타율’과 ‘타율’은 한 사람의 타석 수, 타수에서 유의미한 타구 개수 비율을 산출하여 만들어낸 지표
해당타구와 속도 조합에서 ‘평균적으로’ 발생하는 장타율과 타율을 계산하기 위해서는 장타율과 타율의 재해석이 필요하다.
아래 그림과 같이 장타율과 타율을 계산하였다.
타구속도
ex) 135~140
타구각도
ex) 30~30.5
ex)
해당 발사각도와 발사 속도 조합에서
장타율의 경우
1∗2+2∗2+3∗2+4∗2
10
= 2.0
타율의 경우
8
10
= 0.8
* Grid에 속한 타구 개수가 5개 미만이면 해당 Grid Cell은 제외
(타구가 5개 미만인 각도와 속도의 조합은 분석에 의미가 없다고 판단)
1루타
2루타
3루타
4루타
아웃타구
02 배럴(Barrel) 타구 기준
Grid Search 알고리즘에서 착안하여 평균적으로 타율 0.5를 생산하는 타구발사각도와 속도 조합을 찾았다.
1. 4년간 타구 데이터의 최저 속도, 최고 속도를 찾고, 그 사이의 범위를 5km/h간격으로 쪼갠다.
2. 4년간 타구 데이터에서 최저 발사각도, 최대 발사각도를 찾고 그 사이의 범위를 0.5도 간격으로 쪼갠다.
3. 위와 같은 방식으로 속도와 각도를 쪼개면 여러 속도와 각도 조합을 가진 Grid Cell이 생성된다.
해당 Grid Cell에서 타율계산에 필요한 타구결과의 개수를 파악하여 해당 속도와 각도 조합의 타율을 계산한다.
* Grid에 속한 타구의 개수가 5개 미만이면 해당 Grid Cell은 계산하지 않는다. (5개 미만인 타구와 속도 조합 분석은 의미가 없다고 해석함)
3) 타율(BA) 0.5이상을 생산하는 발사 속도와 발사 각도 조합 찾기
02 배럴(Barrel) 타구 기준
3) 타율(BA) 0.5이상을 생산하는 발사 속도와 발사 각도 조합 찾기
4개년 HTS 데이터 활용하여,
• 모든 발사 각도와 발사 속도 조합에서 타율을 계산하였고,
그 중 타율 0.5 이상을 넘긴 발사 속도와 발사 각도 조합
을 시각화 하였다.
• 시속 150km/h 미만에서는 속도가 증가할수록 타율
0.5를 생산하는 타구발사각도가 낮아지는 경향을 보인
다.
• 시속 150km/h 이상에서는 타율 0.5를 생산하는 타구
발사 각도의 범위가 큰 폭으로 증가하고, 속도가 빨라질
수록 0.5를 생산할 수 있는 발사각도가 선형적으로 증가
함을 관찰하였다.
발사 속도(HIT_VEL)
발사
각도(HIT_ANGLE)
색 : 타율
타율 0.5를 만드는 발사 속도와 각도 조합 시각화
02 배럴(Barrel) 타구 기준
Grid Search 알고리즘에서 착안하여 평균적으로 장타율 1.5를 만드는 타구발사각도와 속도 조합을 찾았다.
1. 4년간 타구 데이터의 최저속도, 최고 속도를 찾고, 그 사이의 범위를 5km/h간격으로 쪼갠다.
2. 4년간 타구 데이터에서 최저발사각도, 최대 발사각도를 찾고 그 사이의 범위를 0.5도 간격으로 쪼갠다.
3. 위와 같은 방식으로 속도와 각도를 쪼개면 여러 속도와 각도 조합을 가진 Grid Cell이 생성된다.
해당 Grid Cell에 속한 타구 결과 (1루타, 2루타, 3루타, 홈런)의 개수를 파악하여 해당 속도와 각도 조합의 장타율을 계산한다.
4) 평균적으로 장타율(SLG) 1.5이상을 만드는 발사 속도와 발사 각도 조합 찾기
02 배럴(Barrel) 타구 기준
4) 평균적으로 장타율(SLG) 1.5이상을 만드는 발사 속도와 발사 각도 조합 찾기
• 4개년의 HTS 데이터를 활용하여 모든 발사 각도와 발사
속도 조합에서 발생한 타구 결과로 장타율을 계산
• 그 중 장타율 1.5이상인 발사 속도와 발사 각도 조합을 시
각화
• 발사속도가 5km/h씩 증가함에 따라 장타율 1.5이상을 넘
기게 하는
발사 각도의 범위가 증가
발사 속도(HIT_VEL)
발사
각도(HIT_ANGLE)
색 : 장타율
장타율 1.5를 만드는 발사 속도와 각도 조합 시각화
02 배럴(Barrel) 타구 기준
평균 장타율 1.5, 평균 타율 0.5 이상
을 생산하는 속도와 각도 조합에서 중
복되는 속도와 각도의 조합을
한국형 배럴존으로 채택한다.
시각화 결과,
B(=평균 장타율 1.5이상을 만들어내
는 속도와 각도 조합)가
A(=평균 타율 0.5이상을 만들어 내는
발사 속도,각도 조합)에포함됨
>> B이면 A를 자동으로 만족함
>> 배럴존 결정에 A와 B 중 B만 고려
해도 됨
평균 장타율 1.5이상을 생성하는 발사 속도와 각도 조합을 배럴 존으로 정한다.
B. 장타율 1.5를 만드는 발사 속도와 각도 조합
A. 타율 0.5를 만드는 발사 속도와 각도 조합
5) 타율 0.5, 장타율 1.5 를 생산하는 타구 속도와 각도 조합의 겹치는 부분 찾기
02 배럴(Barrel) 타구 기준
6) 배럴존 시작 속도 제시
발사 속도(HIT_VEL)
발사
각도(HIT_ANGLE)
EDA INSIGHT
1. 평균 타율 >= 0.5인 타구:
150km/h를 기준으로
생성되는 발사각도의 범위가
큰 폭으로 넓어진다
2. 평균 장타율 >= 1.5인 타구:
발사속도145km/h 이상부터
생성된다
타율 0.5를 만드는 타구 발사 속도 각도 조합 장타율 1.5를 만드는 발사 속도와 각도 조합
발사
각도(HIT_ANGLE)
발사 속도(HIT_VEL)
02 배럴(Barrel) 타구 기준
6) 배럴존 기준 속도 제시
“배럴 존이 시작되는 속도 : 150km/h Why”
첫번째 근거
‘평균 장타율 1.5 생산하는 발사 속도 각도 조합’ 그래프를 보면,
타구 속도150km/h 미만에서는 장타율 1.5이상이 비교적 불연속적으로 발생한다.
두번째 근거
‘평균타율 0.5 생산하는 발사 속도, 각도 조합’ 그래프를 보면, 발사속도 150km/h 이상을 기준으로 평균
적으로 장타율 1.5를 생산해내는 발사각도의 범위가 뚜렷하게 늘어남을 관찰할 수 있다.
02 배럴(Barrel) 타구 기준
평균 장타율 1.5이상을 만드는 발사각도 검토결과
→ 한국형 배럴존의 각도 범위
• 발사속도 150km/h~155km/h
→ 발사각도 21.5도 ~ 36.0도이면 배럴 타구
• 발사속도 155km/h~160km/h
→ 발사각도 19.0도 ~ 40.0도이면 배럴 타구
• 발사속도 160km/h~165km/h
→ 발사각도 하한 10.5도 ~ 각도 상한선 추정필요
• 발사속도 165km/h~170km/h
→ 발사각도 하한 8.5도, 각도 상한선 추정필요
• 발사속도 170km/h 이상
→ 발사각도 상한과 하한은 추정필요
발사 속도(HIT_VEL)
발사
각도(HIT_ANGLE)
7) 배럴존 – 발사각도
데이터부족으로 발사각도 하한과 상한을
결정 할 수 없어 추정해야 하는 부분
02 배럴(Barrel) 타구 기준
추정 방법
150km/h에서부터 5km/h씩증가 할 때마다 배럴 타구를 생
산하는 각도 범위가 선형적으로 증가하는 경향에서 착안하여,
선형회귀 방법으로 각도 범위를 추정
발사 속도(HIT_VEL)
발사
각도(HIT_ANGLE)
7) 배럴존 – 발사각도 추정
발사속도 165km/h 이상에서 배럴 타구를 만드는 발사각도의 상한 추정 필요
02 배럴(Barrel) 타구 기준
7) 배럴존 – 발사각도 추정
선형 회귀 방법으로 각도 범위를 추정하는 코드
1. 5km/h씩증가하는 속도구간에서 각각 배럴 타구
가 만들어지는 각도 상한과 각도 하한을 파악
2. 위의 데이터를 바탕으로 속도가 한 단위(km/h)증
가함에 따라 선형적으로 증가하는 타구각도의 범
위를 선형회귀 모델로 포착
02 배럴(Barrel) 타구 기준
7) 배럴 존 – 발사각도 추정
그 결과, 아래와 같은 회귀 직선을 구할 수 있었다.
• 발사속도 150km/h 부터 속도가 1km/h 증가 할 때 :
배럴 타구를 생산하는 발사각도는 대체적으로 아래로 0.95 도 씩 넓어짐
y(발사각도하한) = -0.95X(발사속도) + 164.5
• 발사속도 150km/h 부터 속도가 사이에서 속도가 1km/h 증가 할 때 :
배럴 타구를 생산하는 발사각도는 대체적으로 위로 0.6 도 씩 넓어짐
y(발사각도상한) = 0.6X(발사속도) -53.667
발사속도가 1km/h 증가할 때마다 배럴 타구가 형성되는 발사각도는 아래 위로 도합 1.55도 씩 넓어짐
02 배럴(Barrel) 타구 기준
4) 한국형 배럴 타구 기준, 배럴 존 최종 결론
배럴 존 정의
배럴 타구를 평균적으로 타율 0.5, 장타율 1.5를 넘기는 타구라고 했을 때
배럴 타구가 만들어지는 구체적인 발사각도와 발사 속도의 조합을 배럴 존이라 한다.
배럴 타구 정의에 따른 한국형 배럴 존
• 발사속도 150km/h~155km/h 에서 발사각도 21.5도 ~ 36.0도이면 배럴 타구
• 발사속도 155km/h~160km/h 에서 발사각도 19.0도 ~ 40.0도이면 배럴 타구
• 발사속도 160km/h~165km/h 에서 발사각도 10.5도 ~ 45.3도이면 배럴 타구
• 발사속도 165km/h~170km/h 에서 발사각도 8.5도 ~ 48.3도이면 배럴 타구
• 발사속도 170km/h 이상부터는 발사속도가 1km/h 증가 할 때마다
배럴 존에 해당하는 발사각도의 범위의 하한이 0.95도 감소, 상한이 0.6도 증가하여 , 총 범위가 1.55도씩 증가한다.
데이터 전처리 및 EDA
03
03 데이터 전처리 및 EDA
전처리 : Barrel 타구 개수 계산 및 변수 추가
1. Barrel 타구 기준에 맞춰 선수 별 Barrel 타구 개수 count : 타자기본 데이터에 Barrel 타구 개수 추가
2. barrel_ratio 계산
선수마다 타석에 오른 횟수가 다르다. 즉, 공을 칠 기회가 모든 선수에게 똑같지 않은 것
∴ 객관적인 ‘배럴 성적’을 비교하기 위해 배럴 개수를 타석수로 나눠준다
03 데이터 전처리 및 EDA
전처리 : OBP, OPS 추가
데이터 내에 OBP와 OPS 변수는 존재하지 않는다!
- 선수 기록을 이용해 OBP와 OPS를 계산해준다
03 데이터 전처리 및 EDA
전처리 : HIT_VEL median 변수 추가
타구의 질에 영향을 미치는 타구 속도와 OPS의 관계
선수 별 타구 속도 median 값 도출
선수의 1년 전 타구 속도의 중앙값(HIT_VEL_LAG1)과 OPS 분포 확인
타구 속도가 빠를수록 OPS도 높아지는 경향성 발견
HIT_VEL의 median 값을 변수로 추가하여, 예측에 활용
03 데이터 전처리 및 EDA
EDA : 1년 전 선수 기본 지표와 1년 후 선수 OPS 상관관계 분석
과거 1년 전 선수 기록 중에서 과연 어떤 지표가 OPS
를 예측하는데 결정적인 역할을 하는지 시각화
과거 1년 전 기록과 당해 년도의 OPS가 어떠한 패턴
을 보인다면 예측에 용이할 것이다.
→ 선형상관계수를 수치적으로 파악 & 시각화
EDA 결과
과거 1년전 스탯들과 1년 후 OPS와 큰 선형상관
계를 보이는 스탯은 찾기 힘들었다.
03 데이터 전처리 및 EDA
EDA : 외야수, 내야수 효과 (낙준)
타자를 포지션 별로 나누어 1년 전 선수 지표(OBP,
SLG, barrel_ratio)가 1년 후 OPS값과 어떤 관계
가 있는지 시각화 하였다.
그러나 타자 포지션에 따라 달라지는 패턴을 찾을 수
없었고, 타자 포지션이 OPS예측에 유의미한 변수는
아님을 파악함.
03 데이터 전처리 및 EDA
STATIZ Crawling
• STATIZ 홈페이지 ‘기록실 > 시즌 기록실’ : 2000년 ~ 2021년 데이터 수집 (총 5811행)
• 팀명, 년도, 포지션 생성
• 기존 데이터 내의 PCODE 유지 : 크롤링 데이터의 동일 선수들에게는 동일 PCODE 부여
• 데이터를 수집하면서 생긴 새로운 선수들에게는 새로운 PCODE 생성
→ 선수 별로 기록을 구분하여 선수 별로 과거 기록을 알 수 있다!
크롤링 Why?
2018년 이전의 기록이
필요할 때 활용하고자 함
↓
유사성 기반 모델에 활용
03 데이터 전처리 및 EDA
EDA : K –means Clustering
K-means Clustering 이란?
유사한 개체를 묶어서 군집을 생성하는 방법
각 군집은 하나의 중심(centroid)을 가짐
각 개체는 가장 가까운 중심에 할당되며, 같은 중심에 할당된 개체들이 모여 하나의 군집 형성
K개의 중심을 임의로 생성 → 생성된 중심을 기준으로 모든 관측치에 군집 할당 →
각 Cluster 의 중심을 다시 계산 → 중심이 변하지 않을 때까지 위의 2~3의 과정을 반복
과거 3년 간의 SLG, OBP 기록만으로 선수들을 군집으로 분류할 수 있을까?
→ 같은 군집인 선수들의 SLG ∙ OBP 기록이 유사하다면 다음 년도의 기록도 유사할 것이다
03 데이터 전처리 및 EDA
EDA : K –means Clustering
군집 분류 후 scatter plot으로 2019년 시즌, 2020년 시즌, 2021년 전반 SLG(X축)과 OBP(Y축) 분포 확인
→ 같은 군집의 선수끼리 유사한 분포를 보인다 ∴ SLG와 OBP의 과거 기록을 예측에 활용할 수 있을 것
군집 분류된 결과를 명목형 변수로 추가하여 모델 적용 : RMSE값에 영향 X ( ∴ 최종 모델에는 활용 X)
→ 모델 자체적으로 여러가지 변수를 고려하여 예측하면서
cluster처럼 유저 별 특징을 추출하는 효과를 주게 된 것으로 보인다.
03 데이터 전처리 및 EDA
전처리 : LAG 변수 생성
성적 예측 시 과거의 선수 기록을 이용하고자 함
선수 기록 (GAMENUM, PA, AB, BA, HIT, HR, TOTB, SLG, SF, BB, KK, IB, HP, GD, OPS, OBP)
→ 1년 전(LAG1), 2년 전(LAG2), 3년 전(LAG3) 의 기록 column 추가
NAME GYEAR OPS SLG OBP OPS_LAG1 SLG_LAG1 OBP_LAG1
강백호 2020 0.955 0.544 0.411 0.910 0.495 0.415
SLG_LAG3 OBP_LAG3
…
예시)
2019년의 OPS, SLG, OBP
+ 즉, Train 데이터 폼을 생성한 것
2020년 행에는
LAG3 가 없음
(2017년의 데이터가
존재하지 않는다)
03 데이터 전처리 및 EDA
전처리 : LAG 변수 생성
성적 예측 시 과거의 선수 기록을 이용하고자 함
선수 기록 (GAMENUM, PA, AB, BA, HIT, HR, TOTB, SLG, SF, BB, KK, IB, HP, GD, OPS, OBP)
→ 1년 전(LAG1), 2년 전(LAG2), 3년 전(LAG3) 의 기록 column 추가
NAME GYEAR OPS SLG OBP OPS_LAG1 SLG_LAG1 OBP_LAG1
강백호 2020 0.955 0.544 0.411 0.910 0.495 0.415
SLG_LAG3 OBP_LAG3
…
예시)
2019년의 OPS, SLG, OBP
+ 즉, Train 데이터 폼을 생성한 것
2020년 행에는
LAG3 가 없음
(2017년의 데이터가
존재하지 않는다)
LAG3를 포함하려면 적어도 2017년 기록이 필요하다
하지만 크롤링을 통해 생성한 2017년 기록에는 Barrel 지표가 없다
따라서 Barrel 변수를 활용하는 모델은 LAG3 사용 X
↓
과거 2년 간의 기록으로 다음 시즌의 기록을 예측!
03 데이터 전처리 및 EDA
전처리 : LAG 변수 생성
성적 예측 시 과거의 선수 기록을 이용하고자 함
선수 기록 (GAMENUM, PA, AB, BA, HIT, HR, TOTB, SLG, SF, BB, KK, IB, HP, GD, OPS, OBP)
→ 1년 전(LAG1), 2년 전(LAG2), 3년 전(LAG3) 의 기록 column 추가
NAME GYEAR OPS SLG OBP OPS_LAG1 SLG_LAG1 OBP_LAG1
강백호 2020 0.955 0.544 0.411 0.910 0.495 0.415
SLG_LAG3 OBP_LAG3
…
예시)
2019년의 OPS, SLG, OBP
+ 즉, Train 데이터 폼을 생성한 것
2020년 행에는
LAG3 가 없음
(2017년의 데이터가
존재하지 않는다)
모델 학습을 위한 Train 데이터
2019, 2018 기록으로 2020년 SLG, OBP 예측
Test 데이터
2020, 2019 기록으로 2021년 전반 SLG, OBP 예측
최종 예측
2021년 전반, 2020 기록으로 최종 예측
크롤링 데이터는 Barrel 지표를 사용하지 않는 모델에 이용하여,
3년 간의 과거 기록으로 향후 성적을 예측하도록 학습할 수 있음
03 데이터 전처리 및 EDA
전처리 : 결측치 채우기
Lag 변수 생성 → 1년 전, 2년 전의 기록이 없는 선수 존재, 결측치 다수
결측치 제거 시 학습 데이터의 수가 현저히 적어짐 ∴ Imputation필요
Imputation방법
1. 선수 평균 : 선수 개인의 기록 반영
2. (선수 평균 + 시즌 평균) /2 : 선수 개개인의 기록 뿐 아니라, 해당 시즌의 흐름을 반영
모델 학습에 두 가지 방법 모두 적용 → 모델 별로 RMSE가 더 낮은 방법 사용
예측모델 선정 검증
04
04 예측 모델 선정 검증
모든 모델에 대해 1. 선정이유 2. 훈련결과(MSE 등) 제시
• MARCEL
선정 모델
트리 계열 모형 유사도 기반 모형
시계열 & 딥러닝 모형
• Random forest
• XGBoost
• VAR
• LSTM
기타 모형
• 유사도 기반 자체 알고리즘
• KNN
04 예측 모델 선정 검증
모델링 과정
1. 데이터 선택 및 전처리
2. 변수 선정
3. 모델의 최적 하이퍼파라미터 탐색
4. 최종 model fit
• Random feature selection : 데이터의 여러 변수를 모두 고려하면서도 예측하려는 값을
가장 잘 예측하는 변수를 찾아 결정 트리 형성
• 모집단(전체 데이터)에서 무작위 복원 추출 : 여러 개의 학습 데이터 표본 생성
→ 샘플의 다양화로 개별 트리의 다양성 극대화 : 과적합 방지
트리 계열 - Random Forest
RMSE
SLG : 0.07850149712848965
OBP : 0.042991857971427225
04 예측 모델 선정 검증
데이터
선정이유
Test 결과
타자 기본_2018, 2019, 2020, 2021 데이터
• Barrel, 선수 별 기록 LAG1, LAG2 계산
• 결측치 처리 : SLG – 선수 평균, OBP – 선수 평균 및 시즌 평균
• 추가 변수
- SLG : 선수 나이
- OBP : HIT_VEL median
변수 선정
트리 계열 - XGBoost
04 예측 모델 선정 검증
• 회귀에서 뛰어난 예측 성능을 보임 : XGBoost의 장점과 과거 선수의 기록을 바탕으로 다음 년도의
기록을 예측하려는 모델 생성 의도가 합치
• 여러 개의 약한 모델을 결합시켜 단점을 보완하고 그 결과 종합 &
내장된 과적합 방지 기능 ∙ 교차 검증 기능 : 적은 양의 학습 데이터로도 overfitting 없이 예측 가능
데이터
선정이유
Test 결과
변수 선정 • Barrel, 선수 별 기록 LAG1, LAG2 계산
• 결측치 처리 : 선수 기록 평균
• 추가 변수 : Age, HIT_VEL median
RMSE
SLG : 0.08101615679
OBP : 0.04402726127
타자 기본_2018, 2019, 2020, 2021 데이터
추천시스템알고리즘을 공부하면서 알게 된 Collaborative Filtering 알고리즘을 야구 스탯 예측에 적용해 보았다.
해당 알고리즘을 시도해본 계기는 다음 물음에서 출발했다.
역대 과거 선수들과 예측하려는 선수들의 과거 3개년 데이터가 유사하다면 역대 선수들의 다음해 값으로 예측하려는 선수들
의 이듬해 값을 예측할 수 있지 않을까?
그리고, MLB에서 유명한 야구 예측 시스템인 PECOTA도 비슷한 원리를 사용한다고 하여 시도해 보았다.
알고리즘은 다음과 같다.
2000~2021년도 까지 STATIZ에서 연간 선수 별 지표 데이터를 사용한다.
1. 예측하려는 선수들의 1,2,3년전 까지의 OPS, OBP, SLG와 역대 야구 선수들의 3년간의 지표의 유사도를 피어슨 상관계
수로 계산한다.
2. 예측하려는 선수들과 가장 높은 유사도를 보이는 선수 5명을 찾는다.
3. 과거 3년간의 데이터를 기준으로 유사도가 가장 높았던, 과거 5명의 선수들의 이듬해 선수지표를 예측 선수와의 유사도
로 가중 평균 하여 예측한다.
유사도 기반 예측 모델 (자체 알고리즘)
04 예측 모델 선정 검증
선정이유
1. 예측하려는 선수들의 1,2,3년전 까지의 OPS, OBP, SLG와 역대 야구 선수들의 3년간의 지표의 유사도를 피어슨 상
관계수로 계산하여, 상관계수 행렬을 만든다.
2. 예측하려는 선수들과 가장 높은 유사도를 보이는 선수 5명을 찾는다.
유사성 기반 예측 모델(자체 알고리즘)
04 예측 모델 선정 검증
코드 일부
3. 과거 3년간의 데이터를 기준으로 유사도가 가장 높았던, 과거 5명의 선수들의 이듬해 선수지표를 예측 선수와의 유
사도로 가중 평균 하여 예측한다.
유사도 기반 예측 모델(자체 알고리즘)
04 예측 모델 선정 검증
사용 수식
예측하려는 10명의 선수들의 2018,2019,2020년 3개년의 스탯과 역대 선수들의 3년간의 스탯을 비교하여 유사한 선
수 5명을 구했다.
이후 과거 유사한 선수들의 이듬해 스탯으로 예측하려는 10명의 선수들의 2021년 전반기 스탯 예측을 하고, 실제
20121년 전반기 스탯과 비교하여 RMSE를 계산하였다.
유사도 기반 예측 모델(자체 알고리즘)
04 예측 모델 선정 검증
Train & Validation
RMSE
OBP : 0.0500
SLG : 0.0766
OPS : 0.1181
2021년 전반기 스탯 예측 Test 결과
트리 계열 - XGBoost
04 예측 모델 선정 검증
• 회귀에서 뛰어난 예측 성능을 보임 : XGBoost의 장점과 과거 선수의 기록을 바탕으로 다음 년도의
기록을 예측하려는 모델 생성 의도가 합치
• 여러 개의 약한 모델을 결합시켜 단점을 보완하고 그 결과 종합 &
내장된 과적합 방지 기능 ∙ 교차 검증 기능 : 적은 양의 학습 데이터로도 overfitting 없이 예측 가능
데이터
선정이유
Test 결과
변수 선정 • Barrel, 선수 별 기록 LAG1, LAG2 계산
• 결측치 처리 : 선수 기록 평균
• 추가 변수 : Age, HIT_VEL median
RMSE
SLG : 0.08101615679
OBP : 0.04402726127
타자 기본_2018, 2019, 2020, 2021 데이터
유사성 기반 모형 – KNN (K 최근접 이웃) 회귀
LAG1, LAG2, LAG3
POSITION 제외
결측치 drop
04 예측 모델 선정 검증
데이터
선정이유
Test 결과
STATIZ 크롤링 데이터 (2000년 ~ 2021년) + 타자기본 데이터
변수 선정
3개년의 기록 흐름이 유사한 K명의 선수를 찾아, 유사성이 높은 선수에게 높은 가중치를 할당한 가
중평균을 계산하는 모델로, 과거 기록이 유사한 선수들은 향후의 기록도 유사한 양상을 보일 것이라
는 추론에 근거하여 예측값을 도출해볼 수 있다
개별 선수 수를 늘리고, 지난 3년 간의 기록으로 유사성을 계산하고자
2018년 이전의 기록까지 반영하는 크롤링 데이터 활용
RMSE
SLG : 0.07986335607119384
OBP : 0.04649800463532233
1.선수 고유의 역량 반영
각 선수별 기량을 반영한 ‘선수 개인의 시계열’을 통한 예측값을 앙상블에 포함하여
선수 고유의 특성이 예측값에 반영되도록 하기 위함.
2. 정상성 만족
시계열의 정상성(stationality)을 판단하는 ADF 테스트 결과, 대부분의 선수 성적 지표들이 정상성을 만족하며
일부 정상성을 만족하지 않는 변수도 1차 차분으로 정상성을 만족.
시계열 모형 - VAR
04 예측 모델 선정 검증
선정이유
데이터
변수 선정
STATIZ에서 크롤링한 예측선수 10명의 2018년부터 2021년까지의 경기별 데이터
ADF 테스트 결과 정상성을 만족하는 변수와 정상성을 만족하지 않는 변수들 중 1차 차분하여 정상 시계
열이 되는 변수
04 예측 모델 선정 검증
데이터 전처리 1. 정규시즌의 OPS를 예측해야 하므로 2018~2021년 데이터 중 정규시즌의 데이터만 추출
2. 선수들의 데이터 경기별 OPS를 시각화한 결과, 이상치가 발견되어, 경기별 OPS가 0.75미만
또는 1.25 이상인 경기의 데이터는 제거하였다.
시계열 모형 – VAR
전처리 이전 강백호 선수 OPS 시각화 전처리 이후 강백호 선수 OPS 시각화
04 예측 모델 선정 검증
시계열 모형 - VAR
Test 결과 RMSE OPS 출루 장타
강백호 0.016663 0.021875 0.014944
로맥 0.014483 0.007441 0.011644
최정 0.043487 0.010180 0.034315
이정후 0.043244 0.016744 0.026299
채은성 0.021014 0.009778 0.018329
양의지 0.030862 0.009982 0.021034
박건우 0.030986 0.024457 0.018885
김현수 0.085358 0.015613 0.069765
김재환 0.021930 0.008403 0.015491
전준우 0.045642 0.012912 0.033242
04 예측 모델 선정 검증
1.선수 고유의 역량 반영
각 선수마다 ‘선수 개인의 시계열 데이터’을 통한 예측값을 앙상블에 포함하여 선수 고유의 특성이 예측값에 반영
되도록 하고자 하였다.
2. LSTM Cell
LSTM Cell은 기본적인 RNN Cell 과 달리 최근의 정보 뿐 아니라 오래 전 정보를 기억할 수 있는 구조로서, 최근
정보 뿐 아니라 오래전 정보를 기억하여 예측할 수 있다.
3. Sequence to Sequence
최근 90경기의 데이터를 가지고 앞의 21경기의 결과를 예측하는 모델을 만들고자 하였다.
이는 ‘many to many’ 문제로서 Sequence to Sequence의 모델 구조를 만드는 것이 적절하다고 판단하였다.
딥러닝 모형 – LSTM Sequence to Sequence
데이터
선정이유
STATIZ에서 크롤링한 10명 선수의 경기별 기록데이터 (2018-2021.09.14)
04 예측 모델 선정 검증
데이터 전처리 1. 정규시즌의 OPS를 예측해야 하므로 2018~2021년 데이터 중 정규시즌의 데이터만 추출
2. 선수들의 데이터 경기별 OPS를 시각화한 결과, 이상치가 발견되어, 경기별 OPS가 0.75미만
또는 1.25 이상인 경기의 데이터는 제거하였다.
딥러닝 모형 – LSTM Sequence to Sequence
전처리 이전 강백호 선수 OPS 시각화 전처리 이후 강백호 선수 OPS 시각화
04 예측 모델 선정 검증
모델 구조 LSTM sequence to sequence 모형은 아래와 같이 데이터를 학습하고 예측값을 만든다.
딥러닝 모형 – LSTM Sequence to Sequence
2018 2021.09.14
Train X
이전 90경기
Train y
이후 21경기
Train X Train y
…
Train X Train y
predictX Prediction
predictX(직전 90경기 데이터)로 예측(Prediction)
04 예측 모델 선정 검증
모델구조
여러 번의 train & validation을 통해 얻은
최종 모델 구조 및 하이퍼 파라미터
은닉층(Hidden Layer) 개수 : 1
→은닉층 개수가 1을 초과하면 모델 과적합 가능성↑
은닉노드(Hidden nodes, or cell dimension) : 100
→ 입력으로 받는 21개의 변수보다 더 많은 은닉 노드가 성능
향상에 큰 도움이 되었다.
학습률(learning rate)
→ Keras의 LearningRateScheduler로
훈련 epoch에 따라 학습률을 조정.
옵티마이저(Optimizer) : Adam
딥러닝 모형 – LSTM Sequence to Sequence
하이퍼 파라미터
04 예측 모델 선정 검증
Test 결과
딥러닝 모형 – LSTM Sequence to Sequence
Train X, Y : test 데이터셋 이전 시점의 데이터
Test X: 2021년 9월 14일로부터 과거 111번째 경기 ~ 과거 20
번째 경기 (총 90경기)
Test Y: 2021년 9월 14일 이전 21경기
검증데이터셋
RMSE
OPS : 0.07832575573653916
OBP : 0.022608483043479108
SLG : 0.08195935819720626
MARCEL
Marcel은 Tom Tango* 에 의해 고안된 가장 단순하면서도 직관적인 예측 시스템
최근 3년간의 성적에 가중치를 부여하여 통계적 회귀 방식으로 향후 시즌의 성적 계산.
가장 단순하지만 그에 반해 수준급의 예측력을 보이는 것으로 평가됨.
기타 - MARCEL
Tom Tango : MLBAM Snr Data Architect
04 예측 모델 선정 검증
MARCEL 공식
1. 3년간의 성적에 최근 순으로 5:4:3의 가중치를 부여한 평균값을 구한다.
2. 3년 간 PA 성적에 5:4:3의 가중치를 주어 합한다.
3. 2에서 구한 값을 이용해 신뢰도 계수를 구한다. r = PA/(PA + 1200)
4. 3년 간 리그 평균 성적을 구한다.
5. 신뢰도 계수를 이용해 1과 4를 regression
6. 나이에 따라 5의 결과를 보정한다
29살 이하 : × 0.003
29살 이상 : × 0.006
별다른 학습이 필요 없다
코드 구현 후 대입하기
기타 - MARCEL
04 예측 모델 선정 검증
선정이유
1. 야구 성적 예측을 위해 만들어진 방법
2. 과거 데이터를 활용해 미래의 성적을 예측하는 방법론의 유사성
3. 가중 평균을 활용하여 과거 3년 간 성적 비중을 달리하는 방식. 가까운 시즌의 기록에 더 큰 비중을 두어
예측할 수 있음.
→ 다른 모델에서 1년 전 기록과 2년 전 기록을 동등하게 인식하는 것과는 다른 효과를 낼 수 있을 것 기대
데이터 전처리
1. 크롤링 데이터 활용
2. 과거 3년 간의 OPS, SLG, OBP, PA 기록 이용
성능 검증
RMSE
SLG : 0.060937781003454504
OBP : 0.042287602793685375
기타 - MARCEL
04 예측 모델 선정 검증
RMSE 표
OBP SLG OPS
Random forest 0.079 0.0439
XGBoost 0.044 0.081
유사성 기반 자체 알고리즘 0.05 0.077
KNN 0.046 0.08
VAR 0.035 0.026 0.035
LSTM 0.023 0.082
MARCEL 0.042 0.061
• 소수점 4째 자리에서 반올림
• VAR과 LSTM은 선수별 평균 MSE를 도
출
• VAR 모델은 OPS를 직접 예측하여
RMSE도 계산함
최종 모델 구축
05
05 최종 모델 구축
앞서 선정한 예측 모델 중 MSE기준 성능이 우수한 모델과
타자 성적의 최신 추세를 반영하기 위한 가장 최근 21 경기의 평균값을 앙상블하였다.
LSTM
VAR
KNN
Random forest
XGBoost
MARCEL
최근 21 경기의
평균값
앙상블하는 과정에서, 시계열 모델과는 달리 트리계열 모델 등은 최근 지표 추세와 다소 어긋난 예측을 하여 트리
모델 중에서는 XGBOOST 모형만을 이용하여 앙상블 하였다.
미사용 모델 사용 모델
05 최종 모델 구축
* 특정선수 : 이정후, 로맥, 강백호, 최정, 양의지, 김현수, 김재환, 전준우, 채은성,박건우
최종 예측 목표
최종 예측 방법
1. 9월 15일 ~ 10월 8일 중 경기가 이루어지는 날은 총 21일로 하루에 5경기씩 총 105경기가 이루어진다.
따라서 해당 기간 중 한 선수가 출전하는 경기는 약 21경기이므로
예측 모델로 각 선수마다 미래 21 경기에 대한 예측값을 생성한다.
2. 각 모델을 통해 생성한 21개 경기의 평균값으로 각 모델을 통한 예측값을 도출한다.
3. 각 모델을 통해 구한 예측값들과 최신 21개 경기의 평균값을 앙상블하여 최종 예측값을 도출한다.
2021 프로야구 정규시즌 중 9월 15일 ~ 10월 8일 간 이루어지는 경기에서 특정선수의 OPS, SLG, OBP 예측
결과 도출
06
06 결과 도출
PCODE OPS 장타율 출루율
1 68050 1.009 0.574 0.435
2 78224 0.881 0.497 0.382
3 76290 0.899 0.507 0.392
4 67872 0.834 0.468 0.364
5 79215 0.843 0.453 0.389
6 76232 1.039 0.607 0.426
7 67341 0.962 0.535 0.427
8 78513 0.844 0.46 0.382
9 79192 0.874 0.503 0.371
10 75847 0.952 0.552 0.403
* PCODE : 선수코드
결론 및 느낀 점
07
07 결론 및 느낀 점
기대효과
For 선수,
한국형 배럴 기준으로 타구의 질을 높이는 훈련 목표 설정
한국형 배럴
기준에 따른
타자성적 예측
For KBO,
한국형 배럴 기준 마련으로 연봉협상 및 선수 영입에 도움
For 야구팬,
선수별 경기력 예측 성능 강화로 흥미와 몰입감 상승
07 결론 및 느낀 점
느낀 점
기업 데이터인 HTS 데이터를
활용하여 다양한 분석 시도
다양한 예측모델에 대한
이론적 탐구
예측 모델 구현을 위한
프로그래밍 능력 향상
참고문헌
김주희. "데이터 분석을 위한 프로 야구 기록 예측 모델 및 시각화 도구." 국내석사학위논문 한양대학교 대학원, 2017. 서울
1. 논문 및 도서
2. 데이터
STATIZ 기록실
벤저민 바우머, 앤드루 짐발리스트. “세이버메트릭스 레볼루션."한빛비즈, 2015.
황영진. (2013). VAR 모형을 이용한 추세 데이터 예측. 응용경제, 15(3), 133-168.
3. 코드
https://www.analyticsvidhya.com/blog/2020/10/multivariate-multi-step-time-series-forecasting-using-
stacked-lstm-sequence-to-sequence-autoencoder-in-tensorflow-2-0-keras/
https://dacon.io/competitions/official/62540/overview/description
감사합니다

More Related Content

What's hot

[분석] 프리미어리그 축구팀 승자예측
[분석] 프리미어리그 축구팀 승자예측[분석] 프리미어리그 축구팀 승자예측
[분석] 프리미어리그 축구팀 승자예측BOAZ Bigdata
 
XR콘텐츠 기획자/3D디자이너/개발자 교육
XR콘텐츠 기획자/3D디자이너/개발자 교육XR콘텐츠 기획자/3D디자이너/개발자 교육
XR콘텐츠 기획자/3D디자이너/개발자 교육HooAhm Lee
 
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [MarketIN팀] : 디지털 마케팅 헬스체킹 서비스
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [MarketIN팀] : 디지털 마케팅 헬스체킹 서비스제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [MarketIN팀] : 디지털 마케팅 헬스체킹 서비스
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [MarketIN팀] : 디지털 마케팅 헬스체킹 서비스BOAZ Bigdata
 
엘라스틱 서치 세미나
엘라스틱 서치 세미나엘라스틱 서치 세미나
엘라스틱 서치 세미나종현 김
 
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [중고책나라] : 실시간 데이터를 이용한 Elasticsearch 클러스터 최적화
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [중고책나라] : 실시간 데이터를 이용한 Elasticsearch 클러스터 최적화제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [중고책나라] : 실시간 데이터를 이용한 Elasticsearch 클러스터 최적화
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [중고책나라] : 실시간 데이터를 이용한 Elasticsearch 클러스터 최적화BOAZ Bigdata
 
자연어 처리 ML모델을 활용한 이커머스 문제 해결하기 - 진현두 (카카오스타일) :: AWS Community Day Online 2021
자연어 처리 ML모델을 활용한 이커머스 문제 해결하기 - 진현두 (카카오스타일) :: AWS Community Day Online 2021자연어 처리 ML모델을 활용한 이커머스 문제 해결하기 - 진현두 (카카오스타일) :: AWS Community Day Online 2021
자연어 처리 ML모델을 활용한 이커머스 문제 해결하기 - 진현두 (카카오스타일) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
 
제 13회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [삼신할머니 말고 Ai] : StyleGan을 이용한 커스터마이징 2세 예측 프로그램
제 13회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [삼신할머니 말고 Ai] : StyleGan을 이용한 커스터마이징 2세 예측 프로그램제 13회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [삼신할머니 말고 Ai] : StyleGan을 이용한 커스터마이징 2세 예측 프로그램
제 13회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [삼신할머니 말고 Ai] : StyleGan을 이용한 커스터마이징 2세 예측 프로그램BOAZ Bigdata
 
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [YouPlace 팀] : 카프카와 스파크를 활용한 유튜브 영상 속 제주 명소 검색
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [YouPlace 팀] : 카프카와 스파크를 활용한 유튜브 영상 속 제주 명소 검색 제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [YouPlace 팀] : 카프카와 스파크를 활용한 유튜브 영상 속 제주 명소 검색
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [YouPlace 팀] : 카프카와 스파크를 활용한 유튜브 영상 속 제주 명소 검색 BOAZ Bigdata
 
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Find Your Style 팀] : 사용자 이미지 라벨링을 통한 의류 추천 시스템
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Find Your Style 팀] : 사용자 이미지 라벨링을 통한 의류 추천 시스템제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Find Your Style 팀] : 사용자 이미지 라벨링을 통한 의류 추천 시스템
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Find Your Style 팀] : 사용자 이미지 라벨링을 통한 의류 추천 시스템BOAZ Bigdata
 
데이터가 흐르는 조직 만들기 - 마이리얼트립
데이터가 흐르는 조직 만들기 - 마이리얼트립데이터가 흐르는 조직 만들기 - 마이리얼트립
데이터가 흐르는 조직 만들기 - 마이리얼트립승화 양
 
AWS Summit Seoul 2023 | 롯데면세점이 고객에게 차별화된 경험을 제공하는 방법: AWS Native 서비스를 활용한 초개인...
AWS Summit Seoul 2023 | 롯데면세점이 고객에게 차별화된 경험을 제공하는 방법: AWS Native 서비스를 활용한 초개인...AWS Summit Seoul 2023 | 롯데면세점이 고객에게 차별화된 경험을 제공하는 방법: AWS Native 서비스를 활용한 초개인...
AWS Summit Seoul 2023 | 롯데면세점이 고객에게 차별화된 경험을 제공하는 방법: AWS Native 서비스를 활용한 초개인...Amazon Web Services Korea
 
고객 중심 서비스 출시를 위한 준비 “온오프라인 고객 데이터 통합” – 김준형 AWS 솔루션즈 아키텍트, 김수진 아모레퍼시픽:: AWS C...
고객 중심 서비스 출시를 위한 준비 “온오프라인 고객 데이터 통합” – 김준형 AWS 솔루션즈 아키텍트, 김수진 아모레퍼시픽:: AWS C...고객 중심 서비스 출시를 위한 준비 “온오프라인 고객 데이터 통합” – 김준형 AWS 솔루션즈 아키텍트, 김수진 아모레퍼시픽:: AWS C...
고객 중심 서비스 출시를 위한 준비 “온오프라인 고객 데이터 통합” – 김준형 AWS 솔루션즈 아키텍트, 김수진 아모레퍼시픽:: AWS C...Amazon Web Services Korea
 
CTCs - Circulating Tumor Cells
CTCs - Circulating Tumor CellsCTCs - Circulating Tumor Cells
CTCs - Circulating Tumor CellsSreepadmanabh M
 
沒學好的中藥學入門
沒學好的中藥學入門沒學好的中藥學入門
沒學好的中藥學入門Kuan-Liang Lin
 
중소병원 서비스 디자인 가이드라인
중소병원 서비스 디자인 가이드라인중소병원 서비스 디자인 가이드라인
중소병원 서비스 디자인 가이드라인USABLE 윤
 
[216]네이버 검색 사용자를 만족시켜라! 의도파악과 의미검색
[216]네이버 검색 사용자를 만족시켜라!   의도파악과 의미검색[216]네이버 검색 사용자를 만족시켜라!   의도파악과 의미검색
[216]네이버 검색 사용자를 만족시켜라! 의도파악과 의미검색NAVER D2
 
[261] 실시간 추천엔진 머신한대에 구겨넣기
[261] 실시간 추천엔진 머신한대에 구겨넣기[261] 실시간 추천엔진 머신한대에 구겨넣기
[261] 실시간 추천엔진 머신한대에 구겨넣기NAVER D2
 
스타트업 데이터분석 - 퍼널분석과 코호트분석
스타트업 데이터분석 - 퍼널분석과 코호트분석스타트업 데이터분석 - 퍼널분석과 코호트분석
스타트업 데이터분석 - 퍼널분석과 코호트분석Seonggwan Lee
 

What's hot (20)

[분석] 프리미어리그 축구팀 승자예측
[분석] 프리미어리그 축구팀 승자예측[분석] 프리미어리그 축구팀 승자예측
[분석] 프리미어리그 축구팀 승자예측
 
Role of ihc
Role of ihcRole of ihc
Role of ihc
 
XR콘텐츠 기획자/3D디자이너/개발자 교육
XR콘텐츠 기획자/3D디자이너/개발자 교육XR콘텐츠 기획자/3D디자이너/개발자 교육
XR콘텐츠 기획자/3D디자이너/개발자 교육
 
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [MarketIN팀] : 디지털 마케팅 헬스체킹 서비스
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [MarketIN팀] : 디지털 마케팅 헬스체킹 서비스제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [MarketIN팀] : 디지털 마케팅 헬스체킹 서비스
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [MarketIN팀] : 디지털 마케팅 헬스체킹 서비스
 
엘라스틱 서치 세미나
엘라스틱 서치 세미나엘라스틱 서치 세미나
엘라스틱 서치 세미나
 
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [중고책나라] : 실시간 데이터를 이용한 Elasticsearch 클러스터 최적화
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [중고책나라] : 실시간 데이터를 이용한 Elasticsearch 클러스터 최적화제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [중고책나라] : 실시간 데이터를 이용한 Elasticsearch 클러스터 최적화
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [중고책나라] : 실시간 데이터를 이용한 Elasticsearch 클러스터 최적화
 
자연어 처리 ML모델을 활용한 이커머스 문제 해결하기 - 진현두 (카카오스타일) :: AWS Community Day Online 2021
자연어 처리 ML모델을 활용한 이커머스 문제 해결하기 - 진현두 (카카오스타일) :: AWS Community Day Online 2021자연어 처리 ML모델을 활용한 이커머스 문제 해결하기 - 진현두 (카카오스타일) :: AWS Community Day Online 2021
자연어 처리 ML모델을 활용한 이커머스 문제 해결하기 - 진현두 (카카오스타일) :: AWS Community Day Online 2021
 
제 13회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [삼신할머니 말고 Ai] : StyleGan을 이용한 커스터마이징 2세 예측 프로그램
제 13회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [삼신할머니 말고 Ai] : StyleGan을 이용한 커스터마이징 2세 예측 프로그램제 13회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [삼신할머니 말고 Ai] : StyleGan을 이용한 커스터마이징 2세 예측 프로그램
제 13회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [삼신할머니 말고 Ai] : StyleGan을 이용한 커스터마이징 2세 예측 프로그램
 
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [YouPlace 팀] : 카프카와 스파크를 활용한 유튜브 영상 속 제주 명소 검색
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [YouPlace 팀] : 카프카와 스파크를 활용한 유튜브 영상 속 제주 명소 검색 제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [YouPlace 팀] : 카프카와 스파크를 활용한 유튜브 영상 속 제주 명소 검색
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [YouPlace 팀] : 카프카와 스파크를 활용한 유튜브 영상 속 제주 명소 검색
 
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Find Your Style 팀] : 사용자 이미지 라벨링을 통한 의류 추천 시스템
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Find Your Style 팀] : 사용자 이미지 라벨링을 통한 의류 추천 시스템제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Find Your Style 팀] : 사용자 이미지 라벨링을 통한 의류 추천 시스템
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Find Your Style 팀] : 사용자 이미지 라벨링을 통한 의류 추천 시스템
 
데이터가 흐르는 조직 만들기 - 마이리얼트립
데이터가 흐르는 조직 만들기 - 마이리얼트립데이터가 흐르는 조직 만들기 - 마이리얼트립
데이터가 흐르는 조직 만들기 - 마이리얼트립
 
AWS Summit Seoul 2023 | 롯데면세점이 고객에게 차별화된 경험을 제공하는 방법: AWS Native 서비스를 활용한 초개인...
AWS Summit Seoul 2023 | 롯데면세점이 고객에게 차별화된 경험을 제공하는 방법: AWS Native 서비스를 활용한 초개인...AWS Summit Seoul 2023 | 롯데면세점이 고객에게 차별화된 경험을 제공하는 방법: AWS Native 서비스를 활용한 초개인...
AWS Summit Seoul 2023 | 롯데면세점이 고객에게 차별화된 경험을 제공하는 방법: AWS Native 서비스를 활용한 초개인...
 
고객 중심 서비스 출시를 위한 준비 “온오프라인 고객 데이터 통합” – 김준형 AWS 솔루션즈 아키텍트, 김수진 아모레퍼시픽:: AWS C...
고객 중심 서비스 출시를 위한 준비 “온오프라인 고객 데이터 통합” – 김준형 AWS 솔루션즈 아키텍트, 김수진 아모레퍼시픽:: AWS C...고객 중심 서비스 출시를 위한 준비 “온오프라인 고객 데이터 통합” – 김준형 AWS 솔루션즈 아키텍트, 김수진 아모레퍼시픽:: AWS C...
고객 중심 서비스 출시를 위한 준비 “온오프라인 고객 데이터 통합” – 김준형 AWS 솔루션즈 아키텍트, 김수진 아모레퍼시픽:: AWS C...
 
CTCs - Circulating Tumor Cells
CTCs - Circulating Tumor CellsCTCs - Circulating Tumor Cells
CTCs - Circulating Tumor Cells
 
沒學好的中藥學入門
沒學好的中藥學入門沒學好的中藥學入門
沒學好的中藥學入門
 
중소병원 서비스 디자인 가이드라인
중소병원 서비스 디자인 가이드라인중소병원 서비스 디자인 가이드라인
중소병원 서비스 디자인 가이드라인
 
[216]네이버 검색 사용자를 만족시켜라! 의도파악과 의미검색
[216]네이버 검색 사용자를 만족시켜라!   의도파악과 의미검색[216]네이버 검색 사용자를 만족시켜라!   의도파악과 의미검색
[216]네이버 검색 사용자를 만족시켜라! 의도파악과 의미검색
 
[261] 실시간 추천엔진 머신한대에 구겨넣기
[261] 실시간 추천엔진 머신한대에 구겨넣기[261] 실시간 추천엔진 머신한대에 구겨넣기
[261] 실시간 추천엔진 머신한대에 구겨넣기
 
스타트업 데이터분석 - 퍼널분석과 코호트분석
스타트업 데이터분석 - 퍼널분석과 코호트분석스타트업 데이터분석 - 퍼널분석과 코호트분석
스타트업 데이터분석 - 퍼널분석과 코호트분석
 
의료서비스디자인 참고서 (Healthcare Design First Aid Kit) - 한국디자인진흥원
의료서비스디자인 참고서 (Healthcare Design First Aid Kit) - 한국디자인진흥원의료서비스디자인 참고서 (Healthcare Design First Aid Kit) - 한국디자인진흥원
의료서비스디자인 참고서 (Healthcare Design First Aid Kit) - 한국디자인진흥원
 

More from DataScienceLab

21-1 세종시 부동산데이터 시각화 모델링 공모전
21-1 세종시 부동산데이터 시각화 모델링 공모전21-1 세종시 부동산데이터 시각화 모델링 공모전
21-1 세종시 부동산데이터 시각화 모델링 공모전DataScienceLab
 
21-2 Air Bnb Review Data EDA 5조
21-2 Air Bnb Review Data EDA 5조21-2 Air Bnb Review Data EDA 5조
21-2 Air Bnb Review Data EDA 5조DataScienceLab
 
21-2 Covid19 Data EDA 4조
21-2 Covid19 Data EDA 4조21-2 Covid19 Data EDA 4조
21-2 Covid19 Data EDA 4조DataScienceLab
 
21-1 Covid 19 데이터 EDA 3조
21-1 Covid 19 데이터 EDA 3조21-1 Covid 19 데이터 EDA 3조
21-1 Covid 19 데이터 EDA 3조DataScienceLab
 
21-2 말레이시아 스타벅스 EDA 2조
21-2 말레이시아 스타벅스 EDA 2조21-2 말레이시아 스타벅스 EDA 2조
21-2 말레이시아 스타벅스 EDA 2조DataScienceLab
 
21-2 에어비앤비 리뷰평점 EDA 1팀
21-2 에어비앤비 리뷰평점 EDA 1팀21-2 에어비앤비 리뷰평점 EDA 1팀
21-2 에어비앤비 리뷰평점 EDA 1팀DataScienceLab
 
폐렴이미지 분류 모델링 프로젝트
폐렴이미지 분류 모델링 프로젝트폐렴이미지 분류 모델링 프로젝트
폐렴이미지 분류 모델링 프로젝트DataScienceLab
 
2021호주 오픈 순위예측 프로젝트
2021호주 오픈 순위예측 프로젝트2021호주 오픈 순위예측 프로젝트
2021호주 오픈 순위예측 프로젝트DataScienceLab
 
음원 사재기 판별 시스템 모델링
음원 사재기 판별 시스템 모델링음원 사재기 판별 시스템 모델링
음원 사재기 판별 시스템 모델링DataScienceLab
 
악플분류 모델링 프로젝트
악플분류 모델링 프로젝트악플분류 모델링 프로젝트
악플분류 모델링 프로젝트DataScienceLab
 
영화 어벤져스 내 네트워크 분석
영화 어벤져스 내 네트워크 분석영화 어벤져스 내 네트워크 분석
영화 어벤져스 내 네트워크 분석DataScienceLab
 
통신사 고객 이탈분석
통신사 고객 이탈분석통신사 고객 이탈분석
통신사 고객 이탈분석DataScienceLab
 
건강식품리뷰데이터분석
건강식품리뷰데이터분석건강식품리뷰데이터분석
건강식품리뷰데이터분석DataScienceLab
 
Airbnb 리뷰데이터 분석을 통한 좋은 숙소의 조건 분석
Airbnb 리뷰데이터 분석을 통한 좋은 숙소의 조건 분석Airbnb 리뷰데이터 분석을 통한 좋은 숙소의 조건 분석
Airbnb 리뷰데이터 분석을 통한 좋은 숙소의 조건 분석DataScienceLab
 
Covid19 데이터로 선진국 및 저개발국 피해규모 분석
Covid19 데이터로 선진국 및 저개발국 피해규모 분석 Covid19 데이터로 선진국 및 저개발국 피해규모 분석
Covid19 데이터로 선진국 및 저개발국 피해규모 분석 DataScienceLab
 
에어비앤비 리뷰데이터 분석을 통한 지역별 호스트 전략 제언
에어비앤비 리뷰데이터 분석을 통한 지역별 호스트 전략 제언 에어비앤비 리뷰데이터 분석을 통한 지역별 호스트 전략 제언
에어비앤비 리뷰데이터 분석을 통한 지역별 호스트 전략 제언 DataScienceLab
 
말레이시아 스타벅스 데이터 분석을 통한 현지 마케팅 전략 평가
말레이시아 스타벅스 데이터 분석을 통한 현지 마케팅 전략 평가말레이시아 스타벅스 데이터 분석을 통한 현지 마케팅 전략 평가
말레이시아 스타벅스 데이터 분석을 통한 현지 마케팅 전략 평가DataScienceLab
 
Covid19 데이터분석을 통한 국내 코로나 대응방향 제안
Covid19 데이터분석을 통한 국내 코로나 대응방향 제안Covid19 데이터분석을 통한 국내 코로나 대응방향 제안
Covid19 데이터분석을 통한 국내 코로나 대응방향 제안DataScienceLab
 
Reinforcement Learning on Mine Sweeper
Reinforcement Learning on Mine SweeperReinforcement Learning on Mine Sweeper
Reinforcement Learning on Mine SweeperDataScienceLab
 

More from DataScienceLab (20)

21-1 세종시 부동산데이터 시각화 모델링 공모전
21-1 세종시 부동산데이터 시각화 모델링 공모전21-1 세종시 부동산데이터 시각화 모델링 공모전
21-1 세종시 부동산데이터 시각화 모델링 공모전
 
21-2 Air Bnb Review Data EDA 5조
21-2 Air Bnb Review Data EDA 5조21-2 Air Bnb Review Data EDA 5조
21-2 Air Bnb Review Data EDA 5조
 
21-2 Covid19 Data EDA 4조
21-2 Covid19 Data EDA 4조21-2 Covid19 Data EDA 4조
21-2 Covid19 Data EDA 4조
 
21-1 Covid 19 데이터 EDA 3조
21-1 Covid 19 데이터 EDA 3조21-1 Covid 19 데이터 EDA 3조
21-1 Covid 19 데이터 EDA 3조
 
21-2 말레이시아 스타벅스 EDA 2조
21-2 말레이시아 스타벅스 EDA 2조21-2 말레이시아 스타벅스 EDA 2조
21-2 말레이시아 스타벅스 EDA 2조
 
21-2 에어비앤비 리뷰평점 EDA 1팀
21-2 에어비앤비 리뷰평점 EDA 1팀21-2 에어비앤비 리뷰평점 EDA 1팀
21-2 에어비앤비 리뷰평점 EDA 1팀
 
폐렴이미지 분류 모델링 프로젝트
폐렴이미지 분류 모델링 프로젝트폐렴이미지 분류 모델링 프로젝트
폐렴이미지 분류 모델링 프로젝트
 
2021호주 오픈 순위예측 프로젝트
2021호주 오픈 순위예측 프로젝트2021호주 오픈 순위예측 프로젝트
2021호주 오픈 순위예측 프로젝트
 
음원 사재기 판별 시스템 모델링
음원 사재기 판별 시스템 모델링음원 사재기 판별 시스템 모델링
음원 사재기 판별 시스템 모델링
 
악플분류 모델링 프로젝트
악플분류 모델링 프로젝트악플분류 모델링 프로젝트
악플분류 모델링 프로젝트
 
영화 어벤져스 내 네트워크 분석
영화 어벤져스 내 네트워크 분석영화 어벤져스 내 네트워크 분석
영화 어벤져스 내 네트워크 분석
 
광고 CTR 예측
광고 CTR 예측광고 CTR 예측
광고 CTR 예측
 
통신사 고객 이탈분석
통신사 고객 이탈분석통신사 고객 이탈분석
통신사 고객 이탈분석
 
건강식품리뷰데이터분석
건강식품리뷰데이터분석건강식품리뷰데이터분석
건강식품리뷰데이터분석
 
Airbnb 리뷰데이터 분석을 통한 좋은 숙소의 조건 분석
Airbnb 리뷰데이터 분석을 통한 좋은 숙소의 조건 분석Airbnb 리뷰데이터 분석을 통한 좋은 숙소의 조건 분석
Airbnb 리뷰데이터 분석을 통한 좋은 숙소의 조건 분석
 
Covid19 데이터로 선진국 및 저개발국 피해규모 분석
Covid19 데이터로 선진국 및 저개발국 피해규모 분석 Covid19 데이터로 선진국 및 저개발국 피해규모 분석
Covid19 데이터로 선진국 및 저개발국 피해규모 분석
 
에어비앤비 리뷰데이터 분석을 통한 지역별 호스트 전략 제언
에어비앤비 리뷰데이터 분석을 통한 지역별 호스트 전략 제언 에어비앤비 리뷰데이터 분석을 통한 지역별 호스트 전략 제언
에어비앤비 리뷰데이터 분석을 통한 지역별 호스트 전략 제언
 
말레이시아 스타벅스 데이터 분석을 통한 현지 마케팅 전략 평가
말레이시아 스타벅스 데이터 분석을 통한 현지 마케팅 전략 평가말레이시아 스타벅스 데이터 분석을 통한 현지 마케팅 전략 평가
말레이시아 스타벅스 데이터 분석을 통한 현지 마케팅 전략 평가
 
Covid19 데이터분석을 통한 국내 코로나 대응방향 제안
Covid19 데이터분석을 통한 국내 코로나 대응방향 제안Covid19 데이터분석을 통한 국내 코로나 대응방향 제안
Covid19 데이터분석을 통한 국내 코로나 대응방향 제안
 
Reinforcement Learning on Mine Sweeper
Reinforcement Learning on Mine SweeperReinforcement Learning on Mine Sweeper
Reinforcement Learning on Mine Sweeper
 

2021빅콘테스트 스포츠테크 부문 TOP16

  • 1. 팀장 임낙준(crossrobot@yonsei.ac.kr) 김새민(saemin3781@yonsei.ac.kr) 손예진(yejinson@yonsei.ac.kr) 프로야구 배럴(Barrel)을 통한 타자성적예측 Team_ 맨땅에 헤딩
  • 2. CONTENTS 01 문제정의 및 데이터 파악 02 배럴(Barrel) 타구 기준 03 데이터 전처리 및 EDA 04 예측모델 선정 검증 05 최종 모델 구축 06 결과 도출 07 결론 및 느낀 점
  • 4. 01 문제정의 및 데이터 파악 문제1 : KBO 배럴 정의 MLB에 따르면, 배럴 타구는 평균적으로 타율 0.5, 장타율 1.5 이상을 생산하는 잘 맞은 타구를 말한다. 미국 선수들의 타구 데이터로 배럴 타구 기준을 세운 결과, 타구 속도가 98마일 이상인 동시에 발사각이 26~30°인 타구 등이 배럴 타구로 정해졌다. 그러나 이러한 기준은 미국 선수들을 기준으로 정해 졌기에 한국 프로 야구 배럴 기준으로 삼기에는 부적절하다. 우리는 평균적으로 ‘타율 0.5, 장타율 1.5 이상’ 을 생산한다는 MLB의 배럴 타구 정의를 그대로 사용하되, 구체적으로 한국 프로야구 토양에 맞는 배럴 존을 정의하기로 했다. 1) 문제 정의
  • 5. 01 문제정의 및 데이터 파악 1) 문제 정의 SLG와 OBP를 각각 예측한 뒤, 이를 합한 값을 OPS 예측값으로 한다. (예외: VAR 모형은 OPS를 직접 예측하는 것이 정확도가 높아, SLG 예측값과 OBP 예측값을 합한 값이 아닌 OPS를 직접 예측한 값을 채택함.) 문제2 : KBO 배럴 기준 기반으로 타자 성적 예측 모형 개발 타자 성적 예측에 주로 이용되는 세이버 매트리스 지표와 앞서 정의한 배럴 기준으로 도출한 배럴 타구 지표를 이용하여 2021 프로야구 정규시즌 중 9월 15일 ~ 10월 8일 간 선수 10명의 OPS, SLG, OBP 예측
  • 6. 01 문제정의 및 데이터 파악 선수 2018 ~ 2021 타자 기본 2018 ~ 2021 HTS 2018 ~ 2021 팀 2016-2021 경기일정 2021 2) 기본 제공 데이터 선수 기본 정보 선수 시즌 기록 PA, SLG, HR, … 선수 타구 결과 각도∙속도 팀 ID : 팀 이름 KBO 경기일정 * 9월 15일 ~ 10월 8일 경기 정보
  • 7. 01 문제정의 및 데이터 파악 STATIZ 10명 선수의 경기별 (2018-2021.09.14) 기록데이터 2) 크롤링 데이터 STATIZ 선수 연도별(2020-2014) 기록 데이터
  • 9. 02 배럴(Barrel) 타구 기준 배럴(Barrel hit) 타구란? MLB는 ‘평균적으로 타율 0.5, 장타율 1.5 이상을 생산하는 타구‘ 를 배럴 타구라 한다. 배럴존 (Barrel Zone) 이란? 배럴 타구를 판단하는 배럴 존(Barrel Zone) 이라는 구체적인 발사각도와 발사 속도 기준 MLB의 배럴 기준 발사속도 최소 98mph부터 시작하고, 해당 속도에서는 발사각이 26~30-도가 만들어질 경우 배럴 타구로 정의된다. 100mph~116mph까지 1mph증가할 때마다 배럴 타구가 만들어지는 타구 발사각도의 범위가 2~3도 증가하는 것으로 알려져 있다. 한국형 배럴 존 정립의 필요성 한국의 선수들과 미국 타자들의 신체조건 등의 차이로 인해 타구 분포의 차이가 발생하여 MLB의 배럴존을 KBO에 직접 적용하기 어려움 1) 배럴 타구 기준 목표 →평균타율 0.5, 평균 장타율 1.5를 생산하는 한국형 배럴 존 정립을 목표로 삼음
  • 10. 02 배럴(Barrel) 타구 기준 4개년의 HTS데이터 활용하여 • 타구 각도와 속도의 모든 조합 &그에 따른 타구 결과 시각화 • 발사속도와 발사각도에 따라 타구 결과가 달라지는 패턴 확인 • 속도와 각도 조합으로 배럴 존을 고안하는 것의 타당성 검증 2) EDA : 타구속도와 타구각도에 따른 타구결과 시각화 X축 : 발사속도 Y축 : 발사각도
  • 11. 02 배럴(Barrel) 타구 기준 ‘장타율’과 ‘타율’은 한 사람의 타석 수, 타수에서 유의미한 타구 개수 비율을 산출하여 만들어낸 지표 해당타구와 속도 조합에서 ‘평균적으로’ 발생하는 장타율과 타율을 계산하기 위해서는 장타율과 타율의 재해석이 필요하다. 아래 그림과 같이 장타율과 타율을 계산하였다. 타구속도 ex) 135~140 타구각도 ex) 30~30.5 ex) 해당 발사각도와 발사 속도 조합에서 장타율의 경우 1∗2+2∗2+3∗2+4∗2 10 = 2.0 타율의 경우 8 10 = 0.8 * Grid에 속한 타구 개수가 5개 미만이면 해당 Grid Cell은 제외 (타구가 5개 미만인 각도와 속도의 조합은 분석에 의미가 없다고 판단) 1루타 2루타 3루타 4루타 아웃타구
  • 12. 02 배럴(Barrel) 타구 기준 Grid Search 알고리즘에서 착안하여 평균적으로 타율 0.5를 생산하는 타구발사각도와 속도 조합을 찾았다. 1. 4년간 타구 데이터의 최저 속도, 최고 속도를 찾고, 그 사이의 범위를 5km/h간격으로 쪼갠다. 2. 4년간 타구 데이터에서 최저 발사각도, 최대 발사각도를 찾고 그 사이의 범위를 0.5도 간격으로 쪼갠다. 3. 위와 같은 방식으로 속도와 각도를 쪼개면 여러 속도와 각도 조합을 가진 Grid Cell이 생성된다. 해당 Grid Cell에서 타율계산에 필요한 타구결과의 개수를 파악하여 해당 속도와 각도 조합의 타율을 계산한다. * Grid에 속한 타구의 개수가 5개 미만이면 해당 Grid Cell은 계산하지 않는다. (5개 미만인 타구와 속도 조합 분석은 의미가 없다고 해석함) 3) 타율(BA) 0.5이상을 생산하는 발사 속도와 발사 각도 조합 찾기
  • 13. 02 배럴(Barrel) 타구 기준 3) 타율(BA) 0.5이상을 생산하는 발사 속도와 발사 각도 조합 찾기 4개년 HTS 데이터 활용하여, • 모든 발사 각도와 발사 속도 조합에서 타율을 계산하였고, 그 중 타율 0.5 이상을 넘긴 발사 속도와 발사 각도 조합 을 시각화 하였다. • 시속 150km/h 미만에서는 속도가 증가할수록 타율 0.5를 생산하는 타구발사각도가 낮아지는 경향을 보인 다. • 시속 150km/h 이상에서는 타율 0.5를 생산하는 타구 발사 각도의 범위가 큰 폭으로 증가하고, 속도가 빨라질 수록 0.5를 생산할 수 있는 발사각도가 선형적으로 증가 함을 관찰하였다. 발사 속도(HIT_VEL) 발사 각도(HIT_ANGLE) 색 : 타율 타율 0.5를 만드는 발사 속도와 각도 조합 시각화
  • 14. 02 배럴(Barrel) 타구 기준 Grid Search 알고리즘에서 착안하여 평균적으로 장타율 1.5를 만드는 타구발사각도와 속도 조합을 찾았다. 1. 4년간 타구 데이터의 최저속도, 최고 속도를 찾고, 그 사이의 범위를 5km/h간격으로 쪼갠다. 2. 4년간 타구 데이터에서 최저발사각도, 최대 발사각도를 찾고 그 사이의 범위를 0.5도 간격으로 쪼갠다. 3. 위와 같은 방식으로 속도와 각도를 쪼개면 여러 속도와 각도 조합을 가진 Grid Cell이 생성된다. 해당 Grid Cell에 속한 타구 결과 (1루타, 2루타, 3루타, 홈런)의 개수를 파악하여 해당 속도와 각도 조합의 장타율을 계산한다. 4) 평균적으로 장타율(SLG) 1.5이상을 만드는 발사 속도와 발사 각도 조합 찾기
  • 15. 02 배럴(Barrel) 타구 기준 4) 평균적으로 장타율(SLG) 1.5이상을 만드는 발사 속도와 발사 각도 조합 찾기 • 4개년의 HTS 데이터를 활용하여 모든 발사 각도와 발사 속도 조합에서 발생한 타구 결과로 장타율을 계산 • 그 중 장타율 1.5이상인 발사 속도와 발사 각도 조합을 시 각화 • 발사속도가 5km/h씩 증가함에 따라 장타율 1.5이상을 넘 기게 하는 발사 각도의 범위가 증가 발사 속도(HIT_VEL) 발사 각도(HIT_ANGLE) 색 : 장타율 장타율 1.5를 만드는 발사 속도와 각도 조합 시각화
  • 16. 02 배럴(Barrel) 타구 기준 평균 장타율 1.5, 평균 타율 0.5 이상 을 생산하는 속도와 각도 조합에서 중 복되는 속도와 각도의 조합을 한국형 배럴존으로 채택한다. 시각화 결과, B(=평균 장타율 1.5이상을 만들어내 는 속도와 각도 조합)가 A(=평균 타율 0.5이상을 만들어 내는 발사 속도,각도 조합)에포함됨 >> B이면 A를 자동으로 만족함 >> 배럴존 결정에 A와 B 중 B만 고려 해도 됨 평균 장타율 1.5이상을 생성하는 발사 속도와 각도 조합을 배럴 존으로 정한다. B. 장타율 1.5를 만드는 발사 속도와 각도 조합 A. 타율 0.5를 만드는 발사 속도와 각도 조합 5) 타율 0.5, 장타율 1.5 를 생산하는 타구 속도와 각도 조합의 겹치는 부분 찾기
  • 17. 02 배럴(Barrel) 타구 기준 6) 배럴존 시작 속도 제시 발사 속도(HIT_VEL) 발사 각도(HIT_ANGLE) EDA INSIGHT 1. 평균 타율 >= 0.5인 타구: 150km/h를 기준으로 생성되는 발사각도의 범위가 큰 폭으로 넓어진다 2. 평균 장타율 >= 1.5인 타구: 발사속도145km/h 이상부터 생성된다 타율 0.5를 만드는 타구 발사 속도 각도 조합 장타율 1.5를 만드는 발사 속도와 각도 조합 발사 각도(HIT_ANGLE) 발사 속도(HIT_VEL)
  • 18. 02 배럴(Barrel) 타구 기준 6) 배럴존 기준 속도 제시 “배럴 존이 시작되는 속도 : 150km/h Why” 첫번째 근거 ‘평균 장타율 1.5 생산하는 발사 속도 각도 조합’ 그래프를 보면, 타구 속도150km/h 미만에서는 장타율 1.5이상이 비교적 불연속적으로 발생한다. 두번째 근거 ‘평균타율 0.5 생산하는 발사 속도, 각도 조합’ 그래프를 보면, 발사속도 150km/h 이상을 기준으로 평균 적으로 장타율 1.5를 생산해내는 발사각도의 범위가 뚜렷하게 늘어남을 관찰할 수 있다.
  • 19. 02 배럴(Barrel) 타구 기준 평균 장타율 1.5이상을 만드는 발사각도 검토결과 → 한국형 배럴존의 각도 범위 • 발사속도 150km/h~155km/h → 발사각도 21.5도 ~ 36.0도이면 배럴 타구 • 발사속도 155km/h~160km/h → 발사각도 19.0도 ~ 40.0도이면 배럴 타구 • 발사속도 160km/h~165km/h → 발사각도 하한 10.5도 ~ 각도 상한선 추정필요 • 발사속도 165km/h~170km/h → 발사각도 하한 8.5도, 각도 상한선 추정필요 • 발사속도 170km/h 이상 → 발사각도 상한과 하한은 추정필요 발사 속도(HIT_VEL) 발사 각도(HIT_ANGLE) 7) 배럴존 – 발사각도 데이터부족으로 발사각도 하한과 상한을 결정 할 수 없어 추정해야 하는 부분
  • 20. 02 배럴(Barrel) 타구 기준 추정 방법 150km/h에서부터 5km/h씩증가 할 때마다 배럴 타구를 생 산하는 각도 범위가 선형적으로 증가하는 경향에서 착안하여, 선형회귀 방법으로 각도 범위를 추정 발사 속도(HIT_VEL) 발사 각도(HIT_ANGLE) 7) 배럴존 – 발사각도 추정 발사속도 165km/h 이상에서 배럴 타구를 만드는 발사각도의 상한 추정 필요
  • 21. 02 배럴(Barrel) 타구 기준 7) 배럴존 – 발사각도 추정 선형 회귀 방법으로 각도 범위를 추정하는 코드 1. 5km/h씩증가하는 속도구간에서 각각 배럴 타구 가 만들어지는 각도 상한과 각도 하한을 파악 2. 위의 데이터를 바탕으로 속도가 한 단위(km/h)증 가함에 따라 선형적으로 증가하는 타구각도의 범 위를 선형회귀 모델로 포착
  • 22. 02 배럴(Barrel) 타구 기준 7) 배럴 존 – 발사각도 추정 그 결과, 아래와 같은 회귀 직선을 구할 수 있었다. • 발사속도 150km/h 부터 속도가 1km/h 증가 할 때 : 배럴 타구를 생산하는 발사각도는 대체적으로 아래로 0.95 도 씩 넓어짐 y(발사각도하한) = -0.95X(발사속도) + 164.5 • 발사속도 150km/h 부터 속도가 사이에서 속도가 1km/h 증가 할 때 : 배럴 타구를 생산하는 발사각도는 대체적으로 위로 0.6 도 씩 넓어짐 y(발사각도상한) = 0.6X(발사속도) -53.667 발사속도가 1km/h 증가할 때마다 배럴 타구가 형성되는 발사각도는 아래 위로 도합 1.55도 씩 넓어짐
  • 23. 02 배럴(Barrel) 타구 기준 4) 한국형 배럴 타구 기준, 배럴 존 최종 결론 배럴 존 정의 배럴 타구를 평균적으로 타율 0.5, 장타율 1.5를 넘기는 타구라고 했을 때 배럴 타구가 만들어지는 구체적인 발사각도와 발사 속도의 조합을 배럴 존이라 한다. 배럴 타구 정의에 따른 한국형 배럴 존 • 발사속도 150km/h~155km/h 에서 발사각도 21.5도 ~ 36.0도이면 배럴 타구 • 발사속도 155km/h~160km/h 에서 발사각도 19.0도 ~ 40.0도이면 배럴 타구 • 발사속도 160km/h~165km/h 에서 발사각도 10.5도 ~ 45.3도이면 배럴 타구 • 발사속도 165km/h~170km/h 에서 발사각도 8.5도 ~ 48.3도이면 배럴 타구 • 발사속도 170km/h 이상부터는 발사속도가 1km/h 증가 할 때마다 배럴 존에 해당하는 발사각도의 범위의 하한이 0.95도 감소, 상한이 0.6도 증가하여 , 총 범위가 1.55도씩 증가한다.
  • 25. 03 데이터 전처리 및 EDA 전처리 : Barrel 타구 개수 계산 및 변수 추가 1. Barrel 타구 기준에 맞춰 선수 별 Barrel 타구 개수 count : 타자기본 데이터에 Barrel 타구 개수 추가 2. barrel_ratio 계산 선수마다 타석에 오른 횟수가 다르다. 즉, 공을 칠 기회가 모든 선수에게 똑같지 않은 것 ∴ 객관적인 ‘배럴 성적’을 비교하기 위해 배럴 개수를 타석수로 나눠준다
  • 26. 03 데이터 전처리 및 EDA 전처리 : OBP, OPS 추가 데이터 내에 OBP와 OPS 변수는 존재하지 않는다! - 선수 기록을 이용해 OBP와 OPS를 계산해준다
  • 27. 03 데이터 전처리 및 EDA 전처리 : HIT_VEL median 변수 추가 타구의 질에 영향을 미치는 타구 속도와 OPS의 관계 선수 별 타구 속도 median 값 도출 선수의 1년 전 타구 속도의 중앙값(HIT_VEL_LAG1)과 OPS 분포 확인 타구 속도가 빠를수록 OPS도 높아지는 경향성 발견 HIT_VEL의 median 값을 변수로 추가하여, 예측에 활용
  • 28. 03 데이터 전처리 및 EDA EDA : 1년 전 선수 기본 지표와 1년 후 선수 OPS 상관관계 분석 과거 1년 전 선수 기록 중에서 과연 어떤 지표가 OPS 를 예측하는데 결정적인 역할을 하는지 시각화 과거 1년 전 기록과 당해 년도의 OPS가 어떠한 패턴 을 보인다면 예측에 용이할 것이다. → 선형상관계수를 수치적으로 파악 & 시각화 EDA 결과 과거 1년전 스탯들과 1년 후 OPS와 큰 선형상관 계를 보이는 스탯은 찾기 힘들었다.
  • 29. 03 데이터 전처리 및 EDA EDA : 외야수, 내야수 효과 (낙준) 타자를 포지션 별로 나누어 1년 전 선수 지표(OBP, SLG, barrel_ratio)가 1년 후 OPS값과 어떤 관계 가 있는지 시각화 하였다. 그러나 타자 포지션에 따라 달라지는 패턴을 찾을 수 없었고, 타자 포지션이 OPS예측에 유의미한 변수는 아님을 파악함.
  • 30. 03 데이터 전처리 및 EDA STATIZ Crawling • STATIZ 홈페이지 ‘기록실 > 시즌 기록실’ : 2000년 ~ 2021년 데이터 수집 (총 5811행) • 팀명, 년도, 포지션 생성 • 기존 데이터 내의 PCODE 유지 : 크롤링 데이터의 동일 선수들에게는 동일 PCODE 부여 • 데이터를 수집하면서 생긴 새로운 선수들에게는 새로운 PCODE 생성 → 선수 별로 기록을 구분하여 선수 별로 과거 기록을 알 수 있다! 크롤링 Why? 2018년 이전의 기록이 필요할 때 활용하고자 함 ↓ 유사성 기반 모델에 활용
  • 31. 03 데이터 전처리 및 EDA EDA : K –means Clustering K-means Clustering 이란? 유사한 개체를 묶어서 군집을 생성하는 방법 각 군집은 하나의 중심(centroid)을 가짐 각 개체는 가장 가까운 중심에 할당되며, 같은 중심에 할당된 개체들이 모여 하나의 군집 형성 K개의 중심을 임의로 생성 → 생성된 중심을 기준으로 모든 관측치에 군집 할당 → 각 Cluster 의 중심을 다시 계산 → 중심이 변하지 않을 때까지 위의 2~3의 과정을 반복 과거 3년 간의 SLG, OBP 기록만으로 선수들을 군집으로 분류할 수 있을까? → 같은 군집인 선수들의 SLG ∙ OBP 기록이 유사하다면 다음 년도의 기록도 유사할 것이다
  • 32. 03 데이터 전처리 및 EDA EDA : K –means Clustering 군집 분류 후 scatter plot으로 2019년 시즌, 2020년 시즌, 2021년 전반 SLG(X축)과 OBP(Y축) 분포 확인 → 같은 군집의 선수끼리 유사한 분포를 보인다 ∴ SLG와 OBP의 과거 기록을 예측에 활용할 수 있을 것 군집 분류된 결과를 명목형 변수로 추가하여 모델 적용 : RMSE값에 영향 X ( ∴ 최종 모델에는 활용 X) → 모델 자체적으로 여러가지 변수를 고려하여 예측하면서 cluster처럼 유저 별 특징을 추출하는 효과를 주게 된 것으로 보인다.
  • 33. 03 데이터 전처리 및 EDA 전처리 : LAG 변수 생성 성적 예측 시 과거의 선수 기록을 이용하고자 함 선수 기록 (GAMENUM, PA, AB, BA, HIT, HR, TOTB, SLG, SF, BB, KK, IB, HP, GD, OPS, OBP) → 1년 전(LAG1), 2년 전(LAG2), 3년 전(LAG3) 의 기록 column 추가 NAME GYEAR OPS SLG OBP OPS_LAG1 SLG_LAG1 OBP_LAG1 강백호 2020 0.955 0.544 0.411 0.910 0.495 0.415 SLG_LAG3 OBP_LAG3 … 예시) 2019년의 OPS, SLG, OBP + 즉, Train 데이터 폼을 생성한 것 2020년 행에는 LAG3 가 없음 (2017년의 데이터가 존재하지 않는다)
  • 34. 03 데이터 전처리 및 EDA 전처리 : LAG 변수 생성 성적 예측 시 과거의 선수 기록을 이용하고자 함 선수 기록 (GAMENUM, PA, AB, BA, HIT, HR, TOTB, SLG, SF, BB, KK, IB, HP, GD, OPS, OBP) → 1년 전(LAG1), 2년 전(LAG2), 3년 전(LAG3) 의 기록 column 추가 NAME GYEAR OPS SLG OBP OPS_LAG1 SLG_LAG1 OBP_LAG1 강백호 2020 0.955 0.544 0.411 0.910 0.495 0.415 SLG_LAG3 OBP_LAG3 … 예시) 2019년의 OPS, SLG, OBP + 즉, Train 데이터 폼을 생성한 것 2020년 행에는 LAG3 가 없음 (2017년의 데이터가 존재하지 않는다) LAG3를 포함하려면 적어도 2017년 기록이 필요하다 하지만 크롤링을 통해 생성한 2017년 기록에는 Barrel 지표가 없다 따라서 Barrel 변수를 활용하는 모델은 LAG3 사용 X ↓ 과거 2년 간의 기록으로 다음 시즌의 기록을 예측!
  • 35. 03 데이터 전처리 및 EDA 전처리 : LAG 변수 생성 성적 예측 시 과거의 선수 기록을 이용하고자 함 선수 기록 (GAMENUM, PA, AB, BA, HIT, HR, TOTB, SLG, SF, BB, KK, IB, HP, GD, OPS, OBP) → 1년 전(LAG1), 2년 전(LAG2), 3년 전(LAG3) 의 기록 column 추가 NAME GYEAR OPS SLG OBP OPS_LAG1 SLG_LAG1 OBP_LAG1 강백호 2020 0.955 0.544 0.411 0.910 0.495 0.415 SLG_LAG3 OBP_LAG3 … 예시) 2019년의 OPS, SLG, OBP + 즉, Train 데이터 폼을 생성한 것 2020년 행에는 LAG3 가 없음 (2017년의 데이터가 존재하지 않는다) 모델 학습을 위한 Train 데이터 2019, 2018 기록으로 2020년 SLG, OBP 예측 Test 데이터 2020, 2019 기록으로 2021년 전반 SLG, OBP 예측 최종 예측 2021년 전반, 2020 기록으로 최종 예측 크롤링 데이터는 Barrel 지표를 사용하지 않는 모델에 이용하여, 3년 간의 과거 기록으로 향후 성적을 예측하도록 학습할 수 있음
  • 36. 03 데이터 전처리 및 EDA 전처리 : 결측치 채우기 Lag 변수 생성 → 1년 전, 2년 전의 기록이 없는 선수 존재, 결측치 다수 결측치 제거 시 학습 데이터의 수가 현저히 적어짐 ∴ Imputation필요 Imputation방법 1. 선수 평균 : 선수 개인의 기록 반영 2. (선수 평균 + 시즌 평균) /2 : 선수 개개인의 기록 뿐 아니라, 해당 시즌의 흐름을 반영 모델 학습에 두 가지 방법 모두 적용 → 모델 별로 RMSE가 더 낮은 방법 사용
  • 38. 04 예측 모델 선정 검증 모든 모델에 대해 1. 선정이유 2. 훈련결과(MSE 등) 제시 • MARCEL 선정 모델 트리 계열 모형 유사도 기반 모형 시계열 & 딥러닝 모형 • Random forest • XGBoost • VAR • LSTM 기타 모형 • 유사도 기반 자체 알고리즘 • KNN
  • 39. 04 예측 모델 선정 검증 모델링 과정 1. 데이터 선택 및 전처리 2. 변수 선정 3. 모델의 최적 하이퍼파라미터 탐색 4. 최종 model fit
  • 40. • Random feature selection : 데이터의 여러 변수를 모두 고려하면서도 예측하려는 값을 가장 잘 예측하는 변수를 찾아 결정 트리 형성 • 모집단(전체 데이터)에서 무작위 복원 추출 : 여러 개의 학습 데이터 표본 생성 → 샘플의 다양화로 개별 트리의 다양성 극대화 : 과적합 방지 트리 계열 - Random Forest RMSE SLG : 0.07850149712848965 OBP : 0.042991857971427225 04 예측 모델 선정 검증 데이터 선정이유 Test 결과 타자 기본_2018, 2019, 2020, 2021 데이터 • Barrel, 선수 별 기록 LAG1, LAG2 계산 • 결측치 처리 : SLG – 선수 평균, OBP – 선수 평균 및 시즌 평균 • 추가 변수 - SLG : 선수 나이 - OBP : HIT_VEL median 변수 선정
  • 41. 트리 계열 - XGBoost 04 예측 모델 선정 검증 • 회귀에서 뛰어난 예측 성능을 보임 : XGBoost의 장점과 과거 선수의 기록을 바탕으로 다음 년도의 기록을 예측하려는 모델 생성 의도가 합치 • 여러 개의 약한 모델을 결합시켜 단점을 보완하고 그 결과 종합 & 내장된 과적합 방지 기능 ∙ 교차 검증 기능 : 적은 양의 학습 데이터로도 overfitting 없이 예측 가능 데이터 선정이유 Test 결과 변수 선정 • Barrel, 선수 별 기록 LAG1, LAG2 계산 • 결측치 처리 : 선수 기록 평균 • 추가 변수 : Age, HIT_VEL median RMSE SLG : 0.08101615679 OBP : 0.04402726127 타자 기본_2018, 2019, 2020, 2021 데이터
  • 42. 추천시스템알고리즘을 공부하면서 알게 된 Collaborative Filtering 알고리즘을 야구 스탯 예측에 적용해 보았다. 해당 알고리즘을 시도해본 계기는 다음 물음에서 출발했다. 역대 과거 선수들과 예측하려는 선수들의 과거 3개년 데이터가 유사하다면 역대 선수들의 다음해 값으로 예측하려는 선수들 의 이듬해 값을 예측할 수 있지 않을까? 그리고, MLB에서 유명한 야구 예측 시스템인 PECOTA도 비슷한 원리를 사용한다고 하여 시도해 보았다. 알고리즘은 다음과 같다. 2000~2021년도 까지 STATIZ에서 연간 선수 별 지표 데이터를 사용한다. 1. 예측하려는 선수들의 1,2,3년전 까지의 OPS, OBP, SLG와 역대 야구 선수들의 3년간의 지표의 유사도를 피어슨 상관계 수로 계산한다. 2. 예측하려는 선수들과 가장 높은 유사도를 보이는 선수 5명을 찾는다. 3. 과거 3년간의 데이터를 기준으로 유사도가 가장 높았던, 과거 5명의 선수들의 이듬해 선수지표를 예측 선수와의 유사도 로 가중 평균 하여 예측한다. 유사도 기반 예측 모델 (자체 알고리즘) 04 예측 모델 선정 검증 선정이유
  • 43. 1. 예측하려는 선수들의 1,2,3년전 까지의 OPS, OBP, SLG와 역대 야구 선수들의 3년간의 지표의 유사도를 피어슨 상 관계수로 계산하여, 상관계수 행렬을 만든다. 2. 예측하려는 선수들과 가장 높은 유사도를 보이는 선수 5명을 찾는다. 유사성 기반 예측 모델(자체 알고리즘) 04 예측 모델 선정 검증 코드 일부
  • 44. 3. 과거 3년간의 데이터를 기준으로 유사도가 가장 높았던, 과거 5명의 선수들의 이듬해 선수지표를 예측 선수와의 유 사도로 가중 평균 하여 예측한다. 유사도 기반 예측 모델(자체 알고리즘) 04 예측 모델 선정 검증 사용 수식
  • 45. 예측하려는 10명의 선수들의 2018,2019,2020년 3개년의 스탯과 역대 선수들의 3년간의 스탯을 비교하여 유사한 선 수 5명을 구했다. 이후 과거 유사한 선수들의 이듬해 스탯으로 예측하려는 10명의 선수들의 2021년 전반기 스탯 예측을 하고, 실제 20121년 전반기 스탯과 비교하여 RMSE를 계산하였다. 유사도 기반 예측 모델(자체 알고리즘) 04 예측 모델 선정 검증 Train & Validation RMSE OBP : 0.0500 SLG : 0.0766 OPS : 0.1181 2021년 전반기 스탯 예측 Test 결과
  • 46. 트리 계열 - XGBoost 04 예측 모델 선정 검증 • 회귀에서 뛰어난 예측 성능을 보임 : XGBoost의 장점과 과거 선수의 기록을 바탕으로 다음 년도의 기록을 예측하려는 모델 생성 의도가 합치 • 여러 개의 약한 모델을 결합시켜 단점을 보완하고 그 결과 종합 & 내장된 과적합 방지 기능 ∙ 교차 검증 기능 : 적은 양의 학습 데이터로도 overfitting 없이 예측 가능 데이터 선정이유 Test 결과 변수 선정 • Barrel, 선수 별 기록 LAG1, LAG2 계산 • 결측치 처리 : 선수 기록 평균 • 추가 변수 : Age, HIT_VEL median RMSE SLG : 0.08101615679 OBP : 0.04402726127 타자 기본_2018, 2019, 2020, 2021 데이터
  • 47. 유사성 기반 모형 – KNN (K 최근접 이웃) 회귀 LAG1, LAG2, LAG3 POSITION 제외 결측치 drop 04 예측 모델 선정 검증 데이터 선정이유 Test 결과 STATIZ 크롤링 데이터 (2000년 ~ 2021년) + 타자기본 데이터 변수 선정 3개년의 기록 흐름이 유사한 K명의 선수를 찾아, 유사성이 높은 선수에게 높은 가중치를 할당한 가 중평균을 계산하는 모델로, 과거 기록이 유사한 선수들은 향후의 기록도 유사한 양상을 보일 것이라 는 추론에 근거하여 예측값을 도출해볼 수 있다 개별 선수 수를 늘리고, 지난 3년 간의 기록으로 유사성을 계산하고자 2018년 이전의 기록까지 반영하는 크롤링 데이터 활용 RMSE SLG : 0.07986335607119384 OBP : 0.04649800463532233
  • 48. 1.선수 고유의 역량 반영 각 선수별 기량을 반영한 ‘선수 개인의 시계열’을 통한 예측값을 앙상블에 포함하여 선수 고유의 특성이 예측값에 반영되도록 하기 위함. 2. 정상성 만족 시계열의 정상성(stationality)을 판단하는 ADF 테스트 결과, 대부분의 선수 성적 지표들이 정상성을 만족하며 일부 정상성을 만족하지 않는 변수도 1차 차분으로 정상성을 만족. 시계열 모형 - VAR 04 예측 모델 선정 검증 선정이유 데이터 변수 선정 STATIZ에서 크롤링한 예측선수 10명의 2018년부터 2021년까지의 경기별 데이터 ADF 테스트 결과 정상성을 만족하는 변수와 정상성을 만족하지 않는 변수들 중 1차 차분하여 정상 시계 열이 되는 변수
  • 49. 04 예측 모델 선정 검증 데이터 전처리 1. 정규시즌의 OPS를 예측해야 하므로 2018~2021년 데이터 중 정규시즌의 데이터만 추출 2. 선수들의 데이터 경기별 OPS를 시각화한 결과, 이상치가 발견되어, 경기별 OPS가 0.75미만 또는 1.25 이상인 경기의 데이터는 제거하였다. 시계열 모형 – VAR 전처리 이전 강백호 선수 OPS 시각화 전처리 이후 강백호 선수 OPS 시각화
  • 50. 04 예측 모델 선정 검증 시계열 모형 - VAR Test 결과 RMSE OPS 출루 장타 강백호 0.016663 0.021875 0.014944 로맥 0.014483 0.007441 0.011644 최정 0.043487 0.010180 0.034315 이정후 0.043244 0.016744 0.026299 채은성 0.021014 0.009778 0.018329 양의지 0.030862 0.009982 0.021034 박건우 0.030986 0.024457 0.018885 김현수 0.085358 0.015613 0.069765 김재환 0.021930 0.008403 0.015491 전준우 0.045642 0.012912 0.033242
  • 51. 04 예측 모델 선정 검증 1.선수 고유의 역량 반영 각 선수마다 ‘선수 개인의 시계열 데이터’을 통한 예측값을 앙상블에 포함하여 선수 고유의 특성이 예측값에 반영 되도록 하고자 하였다. 2. LSTM Cell LSTM Cell은 기본적인 RNN Cell 과 달리 최근의 정보 뿐 아니라 오래 전 정보를 기억할 수 있는 구조로서, 최근 정보 뿐 아니라 오래전 정보를 기억하여 예측할 수 있다. 3. Sequence to Sequence 최근 90경기의 데이터를 가지고 앞의 21경기의 결과를 예측하는 모델을 만들고자 하였다. 이는 ‘many to many’ 문제로서 Sequence to Sequence의 모델 구조를 만드는 것이 적절하다고 판단하였다. 딥러닝 모형 – LSTM Sequence to Sequence 데이터 선정이유 STATIZ에서 크롤링한 10명 선수의 경기별 기록데이터 (2018-2021.09.14)
  • 52. 04 예측 모델 선정 검증 데이터 전처리 1. 정규시즌의 OPS를 예측해야 하므로 2018~2021년 데이터 중 정규시즌의 데이터만 추출 2. 선수들의 데이터 경기별 OPS를 시각화한 결과, 이상치가 발견되어, 경기별 OPS가 0.75미만 또는 1.25 이상인 경기의 데이터는 제거하였다. 딥러닝 모형 – LSTM Sequence to Sequence 전처리 이전 강백호 선수 OPS 시각화 전처리 이후 강백호 선수 OPS 시각화
  • 53. 04 예측 모델 선정 검증 모델 구조 LSTM sequence to sequence 모형은 아래와 같이 데이터를 학습하고 예측값을 만든다. 딥러닝 모형 – LSTM Sequence to Sequence 2018 2021.09.14 Train X 이전 90경기 Train y 이후 21경기 Train X Train y … Train X Train y predictX Prediction predictX(직전 90경기 데이터)로 예측(Prediction)
  • 54. 04 예측 모델 선정 검증 모델구조 여러 번의 train & validation을 통해 얻은 최종 모델 구조 및 하이퍼 파라미터 은닉층(Hidden Layer) 개수 : 1 →은닉층 개수가 1을 초과하면 모델 과적합 가능성↑ 은닉노드(Hidden nodes, or cell dimension) : 100 → 입력으로 받는 21개의 변수보다 더 많은 은닉 노드가 성능 향상에 큰 도움이 되었다. 학습률(learning rate) → Keras의 LearningRateScheduler로 훈련 epoch에 따라 학습률을 조정. 옵티마이저(Optimizer) : Adam 딥러닝 모형 – LSTM Sequence to Sequence 하이퍼 파라미터
  • 55. 04 예측 모델 선정 검증 Test 결과 딥러닝 모형 – LSTM Sequence to Sequence Train X, Y : test 데이터셋 이전 시점의 데이터 Test X: 2021년 9월 14일로부터 과거 111번째 경기 ~ 과거 20 번째 경기 (총 90경기) Test Y: 2021년 9월 14일 이전 21경기 검증데이터셋 RMSE OPS : 0.07832575573653916 OBP : 0.022608483043479108 SLG : 0.08195935819720626
  • 56. MARCEL Marcel은 Tom Tango* 에 의해 고안된 가장 단순하면서도 직관적인 예측 시스템 최근 3년간의 성적에 가중치를 부여하여 통계적 회귀 방식으로 향후 시즌의 성적 계산. 가장 단순하지만 그에 반해 수준급의 예측력을 보이는 것으로 평가됨. 기타 - MARCEL Tom Tango : MLBAM Snr Data Architect 04 예측 모델 선정 검증 MARCEL 공식 1. 3년간의 성적에 최근 순으로 5:4:3의 가중치를 부여한 평균값을 구한다. 2. 3년 간 PA 성적에 5:4:3의 가중치를 주어 합한다. 3. 2에서 구한 값을 이용해 신뢰도 계수를 구한다. r = PA/(PA + 1200) 4. 3년 간 리그 평균 성적을 구한다. 5. 신뢰도 계수를 이용해 1과 4를 regression 6. 나이에 따라 5의 결과를 보정한다 29살 이하 : × 0.003 29살 이상 : × 0.006 별다른 학습이 필요 없다 코드 구현 후 대입하기
  • 57. 기타 - MARCEL 04 예측 모델 선정 검증 선정이유 1. 야구 성적 예측을 위해 만들어진 방법 2. 과거 데이터를 활용해 미래의 성적을 예측하는 방법론의 유사성 3. 가중 평균을 활용하여 과거 3년 간 성적 비중을 달리하는 방식. 가까운 시즌의 기록에 더 큰 비중을 두어 예측할 수 있음. → 다른 모델에서 1년 전 기록과 2년 전 기록을 동등하게 인식하는 것과는 다른 효과를 낼 수 있을 것 기대 데이터 전처리 1. 크롤링 데이터 활용 2. 과거 3년 간의 OPS, SLG, OBP, PA 기록 이용 성능 검증 RMSE SLG : 0.060937781003454504 OBP : 0.042287602793685375 기타 - MARCEL
  • 58. 04 예측 모델 선정 검증 RMSE 표 OBP SLG OPS Random forest 0.079 0.0439 XGBoost 0.044 0.081 유사성 기반 자체 알고리즘 0.05 0.077 KNN 0.046 0.08 VAR 0.035 0.026 0.035 LSTM 0.023 0.082 MARCEL 0.042 0.061 • 소수점 4째 자리에서 반올림 • VAR과 LSTM은 선수별 평균 MSE를 도 출 • VAR 모델은 OPS를 직접 예측하여 RMSE도 계산함
  • 60. 05 최종 모델 구축 앞서 선정한 예측 모델 중 MSE기준 성능이 우수한 모델과 타자 성적의 최신 추세를 반영하기 위한 가장 최근 21 경기의 평균값을 앙상블하였다. LSTM VAR KNN Random forest XGBoost MARCEL 최근 21 경기의 평균값 앙상블하는 과정에서, 시계열 모델과는 달리 트리계열 모델 등은 최근 지표 추세와 다소 어긋난 예측을 하여 트리 모델 중에서는 XGBOOST 모형만을 이용하여 앙상블 하였다. 미사용 모델 사용 모델
  • 61. 05 최종 모델 구축 * 특정선수 : 이정후, 로맥, 강백호, 최정, 양의지, 김현수, 김재환, 전준우, 채은성,박건우 최종 예측 목표 최종 예측 방법 1. 9월 15일 ~ 10월 8일 중 경기가 이루어지는 날은 총 21일로 하루에 5경기씩 총 105경기가 이루어진다. 따라서 해당 기간 중 한 선수가 출전하는 경기는 약 21경기이므로 예측 모델로 각 선수마다 미래 21 경기에 대한 예측값을 생성한다. 2. 각 모델을 통해 생성한 21개 경기의 평균값으로 각 모델을 통한 예측값을 도출한다. 3. 각 모델을 통해 구한 예측값들과 최신 21개 경기의 평균값을 앙상블하여 최종 예측값을 도출한다. 2021 프로야구 정규시즌 중 9월 15일 ~ 10월 8일 간 이루어지는 경기에서 특정선수의 OPS, SLG, OBP 예측
  • 63. 06 결과 도출 PCODE OPS 장타율 출루율 1 68050 1.009 0.574 0.435 2 78224 0.881 0.497 0.382 3 76290 0.899 0.507 0.392 4 67872 0.834 0.468 0.364 5 79215 0.843 0.453 0.389 6 76232 1.039 0.607 0.426 7 67341 0.962 0.535 0.427 8 78513 0.844 0.46 0.382 9 79192 0.874 0.503 0.371 10 75847 0.952 0.552 0.403 * PCODE : 선수코드
  • 65. 07 결론 및 느낀 점 기대효과 For 선수, 한국형 배럴 기준으로 타구의 질을 높이는 훈련 목표 설정 한국형 배럴 기준에 따른 타자성적 예측 For KBO, 한국형 배럴 기준 마련으로 연봉협상 및 선수 영입에 도움 For 야구팬, 선수별 경기력 예측 성능 강화로 흥미와 몰입감 상승
  • 66. 07 결론 및 느낀 점 느낀 점 기업 데이터인 HTS 데이터를 활용하여 다양한 분석 시도 다양한 예측모델에 대한 이론적 탐구 예측 모델 구현을 위한 프로그래밍 능력 향상
  • 67. 참고문헌 김주희. "데이터 분석을 위한 프로 야구 기록 예측 모델 및 시각화 도구." 국내석사학위논문 한양대학교 대학원, 2017. 서울 1. 논문 및 도서 2. 데이터 STATIZ 기록실 벤저민 바우머, 앤드루 짐발리스트. “세이버메트릭스 레볼루션."한빛비즈, 2015. 황영진. (2013). VAR 모형을 이용한 추세 데이터 예측. 응용경제, 15(3), 133-168. 3. 코드 https://www.analyticsvidhya.com/blog/2020/10/multivariate-multi-step-time-series-forecasting-using- stacked-lstm-sequence-to-sequence-autoencoder-in-tensorflow-2-0-keras/ https://dacon.io/competitions/official/62540/overview/description