Flagship project · self-refreshingAll projects

F1machinelearningproject.

A recruiter-facing machine learning project that doubles as a real product: historical race dossiers, calibrated evaluation, and a session-aware GitHub Actions pipeline that retrains the model after every F1 weekend and republishes predictions.

Current snapshot

model version

a9872a5

published

2026-04-23T10:31:09+00:00

held-out log-loss

0.483

seasons public

2024 · 2025 · 2026

Latest race · Round 03 · 2026

Japanese Grand Prix.

Flip through every target the model predicts — race points, podium, win, qualifying, sprint, head-to-head. The ranking below shows the top ten probabilities, colour-coded by whether the model got it right.

Race date 2026-03-29. The pipeline will start pre-publishing predictions ahead of each session in a later pass — for now this shows the freshest race in the held-out set.

Full dossier

Target

Race — driver scores points (top 10)

log-loss 0.372field-avg 46%spread 87
  1. 01

    PIA

    McLaren

    94%
  2. 02

    ANT

    Mercedes

    94%
  3. 03

    RUS

    Mercedes

    94%
  4. 04

    LEC

    Ferrari

    90%
  5. 05

    NOR

    McLaren

    88%
  6. 06

    VER

    Red Bull Racing

    78%
  7. 07

    HAM

    Ferrari

    74%
  8. 08

    HAD

    Red Bull Racing

    69%
  9. 09

    GAS

    Alpine

    66%
  10. 10

    LIN

    Racing Bulls

    54%
hit missmodel a9872a5 · 2026-04-23T10:31:09+00:00
§ Season 2026

Every race, every prediction.

Compact per-race summary for the 2026 season using the primary target. Click any card for the full dossier with driver-level factors.

§ Targets

Seventargets,onemodelfamily.

Each target is trained independently with calibrated probabilities. Metrics are held-out across all public seasons, not cherry-picked.

Race — driver scores points (top 10)

best model: gbm

2024 · 2025 · 2026

log-loss

0.483

brier

0.158

ECE

0.035

Qualifying — driver reaches Q3 (top 10)

best model: features_logit

2024 · 2025 · 2026

log-loss

0.476

brier

0.157

ECE

0.065

Sprint — driver scores points (top 8)

best model: features_logit

2024 · 2025 · 2026

log-loss

0.484

brier

0.136

ECE

0.127

Sprint Qualifying — driver starts top 5

best model: features_logit

2024 · 2025 · 2026

log-loss

0.355

brier

0.103

ECE

0.079

Race — driver finishes on the podium (top 3)

best model: gbm

2024 · 2025 · 2026

log-loss

0.191

brier

0.058

ECE

0.026

Race — driver WINS (1st place)

best model: gbm

2024 · 2025 · 2026

log-loss

0.091

brier

0.030

ECE

0.024

Head-to-head — driver beats their teammate in the race

best model: gbm

2024 · 2025 · 2026

log-loss

0.580

brier

0.198

ECE

0.051

Primary honesty check

The main public story stays anchored on the held-out 2025 season. Predictions for each race are regenerated after every session, but the historical evaluation stays honest by preserving the numbers as they were first tested.

Under the hood

Training lives in the ml/ folder — LightGBM per target, isotonic calibration, regulation-era weighting. The GitHub Actions pipeline rewrites itself weekly to schedule runs ~30 minutes after every F1 session.

Source on GitHub