MLB 배트 트래킹 데이터셋 (2024-2025)

발행: (2026년 2월 23일 오후 02:30 GMT+9)
5 분 소요
원문: Dev.to

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)

데이터셋 스키마

주요 열

ColumnTypeDescription
yearint시즌 연도 (2024 또는 2025)
player_namestr선수 이름
player_idintMLBAM 선수 ID
bat_speedfloat평균 배트 속도 (mph)
swing_lengthfloat평균 스윙 길이 (피트)
squared_up_ratefloat정타 비율 (0‑100%)
attack_anglefloat평균 공격 각도 (도)
blast_avgfloatBLAST 점수 (0‑100)
fast_swing_ratefloat빠른 스윙 비율 (0‑100%)
swords_ratefloat구역 내 스윙 앤 미스 비율 (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°)
  • 짧은 스윙 길이 (효율적인 스윙 메커니즘)

스윙 프로파일 비교

다양한 유형의 선수들은 뚜렷한 스윙 프로파일을 보입니다:

  • 파워 히터: 높은 배트 스피드, 가파른 어택 앵글
  • 컨택트 히터: 짧은 스윙 길이, 높은 스퀘어드‑업 비율
  • 스피드 중심 선수: 빠른 스윙 속도, 얕은 어택 앵글
  • 데이터셋:
  • GitHub 저장소:
  • Baseball Savant:
0 조회
Back to Blog

관련 글

더 보기 »

Novelstar 1.0: 소설을 쓰기 위한 작은 HTML 앱 :)

요약: Linux에서 처음으로 소설가가 된 나는 사용 가능한 소프트웨어에 만족하지 못했습니다. Manuskript, Ghostwriter, NovelWriter를 시도했지만 어느 것도 내 기대에 부합하지 않았습니다.