βΎ MLB Live Game Duration XGBoost Predictor
This repository contains an XGBoost regression model trained to predict the total expected duration (in minutes) of live Major League Baseball (MLB) games based on real-time pitch-by-pitch game state.
π Model Details
- Model Type: XGBoost Regressor (
XGBRegressor) - Format: Native XGBoost JSON (
xgb_live_model.json) - Task: Tabular Regression (
tabular-regression) - Target Variable:
final_game_minutes(Total game duration in minutes)
Input Features (19 columns)
| Feature | Type | Description |
|---|---|---|
inning |
Integer | Current inning number |
outs_when_up |
Integer | Number of outs (0, 1, or 2) |
run_diff |
Integer | Absolute difference between home and away scores |
is_home_leading |
Binary (0/1) | Whether the home team is leading |
is_tied |
Binary (0/1) | Whether the score is tied |
on_1b |
Binary (0/1) | Runner on 1st base |
on_2b |
Binary (0/1) | Runner on 2nd base |
on_3b |
Binary (0/1) | Runner on 3rd base |
total_runs |
Integer | Sum of home and away runs scored so far |
home_pitchers_used |
Integer | Count of home team pitchers used |
away_pitchers_used |
Integer | Count of away team pitchers used |
home_starting_pitcher |
Binary (0/1) | Whether home starting pitcher is still in |
away_starting_pitcher |
Binary (0/1) | Whether away starting pitcher is still in |
total_pitch_count |
Integer | Total pitches thrown in the game |
total_pa |
Integer | Total plate appearances in the game |
is_dome |
Binary (0/1) | Game played in a dome stadium |
is_national_tv |
Binary (0/1) | Game broadcast on national TV |
is_night_game |
Binary (0/1) | Game scheduled as a night game |
is_rivalry |
Binary (0/1) | Intra-division rivalry matchup |
π How to Load & Use in Python
import xgboost as xgb
import pandas as pd
from huggingface_hub import hf_hub_download
# 1. Download the JSON model file from Hugging Face Hub
# Replace 'your-username' with your actual Hugging Face username
model_path = hf_hub_download(
repo_id="your-username/mlb-game-duration-xgboost",
filename="xgb_live_model.json"
)
# 2. Load into XGBRegressor
model = xgb.XGBRegressor()
model.load_model(model_path)
# 3. Make predictions on a game state DataFrame
# sample_df = pd.DataFrame([{ "inning": 5, "outs_when_up": 1, ... }])
# predicted_minutes = model.predict(sample_df)[0]
# print(f"Predicted Total Duration: {predicted_minutes:.1f} minutes")