This project uses FastF1 telemetry data and a gradient boosting model (XGBoost) to predict qualifying lap times for Formula 1 races — including a simulated 2025 United States GP (Austin) qualifying session.
This repository demonstrates how to:
- Collect historical qualifying data (2021–2023) from FastF1
- Merge weather and track conditions (air temp, track temp, humidity, etc.)
- Train a machine learning model to predict lap times
- Generate a predicted qualifying order for any event
- Visualize feature importance, model performance, and qualifying results
✅ Uses real F1 telemetry via the FastF1 API
✅ Predicts realistic lap times (~1:34 for Austin)
✅ Model achieves R² ≈ 0.99 and MAE ≈ 0.3 s
✅ Includes weather-aware predictions
✅ Generates F1-style timing sheets with gaps (+0.xxx)
✅ Extensible for “what-if” scenarios (e.g., driver/team swaps or temperature changes)
🏁 Predicted 2025 Austin GP Qualifying Order:
## Pos Driver Team Lap Time Gap
1 SAI Ferrari 1:34.147 +0.000
2 VER Red Bull Racing 1:34.285 +0.138
3 LEC Ferrari 1:34.473 +0.325
4 PER Red Bull Racing 1:34.557 +0.410
5 HAM Mercedes 1:34.743 +0.596
...
📈 Model Performance:
MAE = 0.321 s | R² = 0.988
🌡️ Austin Conditions: Air 32°C | Track ≈ 42°C
Features Used:
- Driver
- Team
- Event (Circuit)
- Tyre Compound
- Tyre Life
- Air Temperature
- Track Temperature
- Humidity
- Pressure
- Wind Speed
- Track Status
Target:
- Lap time (normalized per event)
Algorithm:
-
XGBRegressor- 800 estimators
- learning_rate = 0.05
- max_depth = 7
- subsample = 0.8
- colsample_bytree = 0.8
- Driver vs. teammate performance over multiple seasons
- Circuit clusters (fast vs. technical tracks)
- Weather sensitivity — effect of air/track temp on lap time
- Team development trends year over year
- What-if simulations (e.g., “What if Leclerc drove a Red Bull?”)
- Data: FastF1 (OpenTelemetry API)
- Weather: Open-Meteo API
- Modeling: XGBoost & Scikit-learn
- Visualization: Matplotlib
This project is released under the MIT License. Feel free to fork, modify, and build your own F1 analytics models!
“Data wins races — if you know how to read it.” 🏁
