Views
No views yet
xgboost.joblib). A logistic-regression
baseline is included for reference (logistic_regression.joblib). Both share
the StandardScaler in scaler.joblib and the 35 features listed in
feature_columns.json.| Model | Accuracy | AUC-ROC | Log loss |
|---|---|---|---|
| XGBoost | 0.662 | 0.718 | 0.636 |
| Logistic Regression | 0.643 | 0.698 | 0.646 |
current_win_streak (0.31)current_loss_streak (0.22)days_since_last_match (0.13)h2h_win_rate (0.09)is_royal_rumble (0.03)1import joblib
2import pandas as pd
3
4# Download artifacts
5from huggingface_hub import hf_hub_download
6
7xgb_path = hf_hub_download(repo_id="datamatters24/ringside-match-winner", filename="xgboost.joblib")
8scaler_path = hf_hub_download(repo_id="datamatters24/ringside-match-winner", filename="scaler.joblib")
9
10xgb = joblib.load(xgb_path)
11scaler = joblib.load(scaler_path)
12
13# X must be a DataFrame with exactly the 35 feature columns from feature_columns.json
14# Reproduce feature engineering: see https://github.com/tedrubin80/wrastlingfirst/blob/main/ml/features.py
15# Or use the prebuilt feature_matrix.parquet from the dataset:
16# https://huggingface.co/datasets/datamatters24/ringside-analytics
17
18X_scaled = scaler.transform(X)
19proba = xgb.predict_proba(X_scaled)[:, 1] # P(win)feature_matrix.parquet — the exact 35-feature snapshot
used at training time. Loading that file and running the model gives identical
predictions to the served version.1import pandas as pd, joblib
2from huggingface_hub import hf_hub_download
3
4fm_path = hf_hub_download(
5 repo_id="datamatters24/ringside-analytics",
6 repo_type="dataset",
7 filename="feature_matrix.parquet",
8)
9fm = pd.read_parquet(fm_path)
10
11# (Optional) honest temporal split
12fm["event_date"] = pd.to_datetime(fm["event_date"])
13test = fm[fm["event_date"] >= "2025-01-01"]1@misc{rubin2026ringside,
2 author = {Rubin, Theodore},
3 title = {Ringside Analytics: Match Winner Predictor},
4 year = {2026},
5 url = {https://huggingface.co/datamatters24/ringside-match-winner}
6}