| --- |
| language: en |
| license: mit |
| tags: |
| - xgboost |
| - tabular-regression |
| - mlb |
| - baseball |
| library_name: xgboost |
| --- |
| |
| # โพ 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 |
|
|
| ```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") |
| ``` |
|
|