MLB 배트 트래킹 데이터셋 (2024-2025)
Source: Dev.to
(번역할 텍스트를 제공해 주시면 한국어로 번역해 드리겠습니다.)
소개
저는 2024년 및 2025년 시즌의 MLB 배트 트래킹 메트릭을 포함한 Kaggle 데이터셋을 공개했습니다. 이 데이터셋은 MLB가 2024년에 도입한 스윙 속도, 어택 각도 및 기타 배트 트래킹 통계 정보를 제공합니다.
Dataset Link:
데이터셋 개요
MLB Bat Tracking (2024-2025)
- 타자: 452명 (시즌당 226명)
- 열: 19개 열
- 시즌: 2024, 2025
- Source: Baseball Savant (directly accessed, not via pybaseball)
Bat Tracking이란?
Bat Tracking은 MLB가 2024년에 도입한 새로운 기술로, high‑speed cameras를 사용하여 swing metrics를 측정합니다. 이는 이전에 알 수 없었던 swing mechanics에 대한 통찰을 제공합니다.
핵심 지표
| 지표 | 설명 |
|---|---|
bat_speed | 접촉 시 스윙 속도 (mph) |
swing_length | 스윙 경로 길이 (feet) |
squared_up_rate | 최적 배트‑볼 접촉 비율 (0‑1) |
attack_angle | 스윙 평면 각도 (degrees) |
blast_avg | 고속 및 최적 접촉을 모두 만족하는 스윙 비율 (%) |
데이터 수집
이 데이터셋은 맞춤 스크래핑을 사용하여 Baseball Savant에서 직접 수집되었습니다. pybaseball은 아직 배트 트래킹 데이터를 지원하지 않기 때문입니다.
데이터 출처:
import pandas as pd
import requests
from bs4 import BeautifulSoup
# Example: Fetching 2024 bat tracking data
url = "https://baseballsavant.mlb.com/leaderboard/bat-tracking?year=2024"
response = requests.get(url)
# Parse HTML and extract table data
# (Full implementation available in the dataset repository)
데이터셋 스키마
주요 열
| Column | Type | Description |
|---|---|---|
year | int | 시즌 연도 (2024 또는 2025) |
player_name | str | 선수 이름 |
player_id | int | MLBAM 선수 ID |
bat_speed | float | 평균 배트 속도 (mph) |
swing_length | float | 평균 스윙 길이 (피트) |
squared_up_rate | float | 정타 비율 (0‑100%) |
attack_angle | float | 평균 공격 각도 (도) |
blast_avg | float | BLAST 점수 (0‑100) |
fast_swing_rate | float | 빠른 스윙 비율 (0‑100%) |
swords_rate | float | 구역 내 스윙 앤 미스 비율 (0‑100%) |
Kaggle 노트북에서 사용하기
데이터셋 로드하기
import pandas as pd
# Load bat tracking data
df = pd.read_csv('/kaggle/input/mlb-bat-tracking-2024-2025/bat_tracking_2024_2025.csv')
print(f"Total records: {len(df)}")
print(f"Seasons: {df['year'].unique()}")
print(f"Average bat speed: {df['bat_speed'].mean():.2f} mph")
연도별 비교
import matplotlib.pyplot as plt
# Compare bat speed distribution between seasons
df_2024 = df[df['year'] == 2024]
df_2025 = df[df['year'] == 2025]
plt.hist(df_2024['bat_speed'], alpha=0.5, label='2024', bins=20)
plt.hist(df_2025['bat_speed'], alpha=0.5, label='2025', bins=20)
plt.xlabel('Bat Speed (mph)')
plt.ylabel('Frequency')
plt.legend()
plt.title('Bat Speed Distribution: 2024 vs 2025')
plt.show()
분석 예시
배속 최고 퍼포머
# Top 10 fastest bat speeds in 2025
top_bat_speed = (
df[df['year'] == 2025]
.nlargest(10, 'bat_speed')[['player_name', 'bat_speed', 'squared_up_rate', 'attack_angle']]
)
print(top_bat_speed)
스퀘어드‑업 비율 분석
import seaborn as sns
import matplotlib.pyplot as plt
# Relationship between bat speed and squared‑up rate
sns.scatterplot(data=df, x='bat_speed', y='squared_up_rate', hue='year', alpha=0.6)
plt.xlabel('Bat Speed (mph)')
plt.ylabel('Squared‑Up Rate (%)')
plt.title('Bat Speed vs Squared‑Up Rate')
plt.show()
배트 트래킹 데이터 인사이트
좋은 타자를 만드는 요소는?
배트 트래킹 데이터에 따르면 엘리트 타자들은 일반적으로 다음과 같은 특징을 가지고 있습니다:
- 높은 배트 스피드 (75+ mph)
- 높은 스퀘어드‑업 비율 (30%+)
- 최적의 어택 앵글 (대부분의 타자에게 10‑20°)
- 짧은 스윙 길이 (효율적인 스윙 메커니즘)
스윙 프로파일 비교
다양한 유형의 선수들은 뚜렷한 스윙 프로파일을 보입니다:
- 파워 히터: 높은 배트 스피드, 가파른 어택 앵글
- 컨택트 히터: 짧은 스윙 길이, 높은 스퀘어드‑업 비율
- 스피드 중심 선수: 빠른 스윙 속도, 얕은 어택 앵글
Links
- 데이터셋:
- GitHub 저장소:
- Baseball Savant: