XGBoost + LightGBM ensemble predicting Formula 1 race winners from 76 seasons of historical data. Tuned with Optuna hyperparameter optimization across 200 trials. Auto-retrains weekly during the active season.
Conditions: Weather forecast, safety car probability
Grid: Starting position, qualifying gap to pole
Architecture
XGBoost (GPU) + LightGBM
Optuna HPO: 200 trials, TPE sampler
Time-series split: train on seasons N-5 to N-1, evaluate on N
Final output: softmax win probabilities per driver
Dataset
Coverage: 1950–2025, 76 seasons
Records: 1,322,914 race records
Telemetry laps: 470K+
Sources: FastF1, Jolpica-F1, f1db, Kaggle
Usage
python
1import joblib
23model = joblib.load("f1_ensemble.joblib")4# Input: 21-feature vector per driver5# Output: win probability (0-1)6probs = model.predict_proba(X)
Auto-Update Pipeline
During the active F1 season the model retrains weekly:
Pull latest race results and telemetry via FastF1
Engineer features for upcoming race grid
Retrain ensemble with updated data
Publish updated predictions to telemetrychaos.space
Citation
bibtex
1@misc{rubin2026telemetrychaos,
2 author = {Rubin, Theodore},
3 title = {Telemetry Chaos: F1 Race Prediction with XGBoost/LightGBM Ensemble},
4 year = {2026},
5 publisher = {HuggingFace},
6 url = {https://huggingface.co/datamatters24/f1-race-predictor-model}
7}