| --- |
| license: apache-2.0 |
| tags: |
| - time-series-forecasting |
| - f1 |
| - chronos |
| - fine-tuned |
| language: |
| - en |
| --- |
| |
| # F1 Lap-Time Forecasting — Chronos Fine-tune |
|
|
| One-step-ahead lap time forecasting for Formula 1 races, fine-tuned from [autogluon/chronos-bolt-base](https://huggingface.co/autogluon/chronos-bolt-base). |
|
|
| | | | |
| |---|---| |
| | **Run ID** | `20260419_211104` | |
| | **Base model** | `autogluon/chronos-bolt-base` | |
| | **Task** | Next-lap time regression (ms) within a stint | |
| | **Repository** | `pablog86/oaa2` | |
|
|
| --- |
|
|
| ## Dataset |
|
|
| Sourced from the consolidated `f1-race-data/latest.parquet` Parquet produced by the Airflow ingestion DAG (SPEC-008/SPEC-009). |
|
|
| | | | |
| |---|---| |
| | **Train / val seasons** | [2022, 2023] | |
| | **Test seasons** | [2024] | |
| | **Session types** | RACE | |
| | **Object ETag** | `a6b0d597d06b934476b5e77a928c9659` | |
| | **Last modified** | 2026-04-19T04:22:53+00:00 | |
|
|
| --- |
|
|
| ## Features |
|
|
| The model receives a sliding context window of pit-corrected lap times (`lap_time_ex_pit_ms`) within the current stint, plus the covariates listed below. |
|
|
| | Feature | Type | |
| |---|---| |
| | `lap_time_ex_pit_ms` (context window) | Target signal — sliding window of pit-stop-corrected lap times within the current stint | |
| | `circuit_id` | Static | |
| | `constructor_id` | Static | |
| | `grid_position` | Static | |
| | `circuit_season_max_laps` | Static | |
| | `lap`, `lap_position`, `lap_in_race_pct` | Dynamic observed | |
| | `lap_in_stint`, `is_pit_out_lap`, `is_pit_in_lap` | Dynamic observed | |
| | `cumulative_pit_count`, `laps_since_last_pit` | Dynamic observed | |
| | `elapsed_race_time_ms` | Dynamic observed | |
| | `lag_1/2/3_lap_time_ex_pit_ms` | Historical | |
| | `rolling_mean_3/5_lap_time_ex_pit_ms` | Historical | |
| | `rolling_std_3_lap_time_ex_pit_ms` | Historical | |
| | `delta_vs_prev_lap_ex_pit_ms` | Historical | |
| | `delta_vs_rolling_mean_3_ex_pit_ms` | Historical | |
|
|
| --- |
|
|
| ## Training Configuration |
|
|
| | Hyperparameter | Value | |
| |---|---| |
| | `model_id` | `autogluon/chronos-bolt-base` | |
| | `learning_rate` | `0.0001` | |
| | `batch_size` | `32` | |
| | `max_epochs` | `15` | |
| | `patience` | `3` | |
| | `weight_decay` | `0.0001` | |
| | `gradient_clip_val` | `1.0` | |
| | `context_length` | `20` | |
| | `prediction_length` | `1` | |
| | `loss_function` | `huber` | |
| | `random_seed` | `42` | |
| | **Early stopping at epoch** | 8 / 15 | |
|
|
| --- |
|
|
| ## Evaluation Results |
|
|
| ### Validation |
|
|
| | Metric | Value | |
| |---|---| |
| | MAE (ms) | 8377.9 | |
| | RMSE (ms) | 80676.4 | |
| | MAPE (%) | 8.07 | |
| | Within ±500 ms (%) | 55.7 | |
| | Within ±1000 ms (%) | 70.7 | |
| | Samples | 8873 | |
|
|
| ### Test |
|
|
| | Metric | Value | |
| |---|---| |
| | MAE (ms) | 4619.8 | |
| | RMSE (ms) | 55007.5 | |
| | MAPE (%) | 4.54 | |
| | Within ±500 ms (%) | 60.3 | |
| | Within ±1000 ms (%) | 75.6 | |
| | Samples | 25241 | |
|
|
| ### Test — by season |
|
|
| | Segment | mae (ms) | mape (%) | pct_within_500ms | n_samples | |
| | --- | --- | --- | --- | --- | |
| | 2024 | 4619.8 | 4.5 | 60.3 | 25241 | |
| |
| ### Test — by stint length |
| |
| | Segment | mae (ms) | mape (%) | pct_within_500ms | n_samples | |
| | --- | --- | --- | --- | --- | |
| | long (>30) | 4393.4 | 4.5 | 62.0 | 9235 | |
| | medium (15–30) | 3189.5 | 3.3 | 61.8 | 12629 | |
| | short (<15) | 10587.5 | 9.2 | 50.3 | 3377 | |
|
|
| --- |
|
|
| ## Baseline Comparison (test set) |
|
|
| | Metric | **Model** | `last_lap` | `rolling_mean_3` | `rolling_mean_5` | |
| | --- | --- | --- | --- | --- | |
| | MAE (ms) | **4619.8** | 5167.4 | 3152.9 | 2975.1 | |
| | MAPE (%) | **4.5** | 5.6 | 3.5 | 3.4 | |
| | Within ±500 ms (%) | **60.3** | 58.7 | 62.4 | 59.5 | |
|
|
| --- |
|
|
| ## Run History |
|
|
| | run_id | model | val MAE (ms) | test MAE (ms) | test MAPE (%) | within ±500 ms (%) | |
| |---|---|---|---|---|---| |
| | `20260419_211104` | `chronos-bolt-base` | 8377.9 | 4619.8 | 4.54 | 60.3 | |
|
|
| --- |
|
|
| ## Reproducibility |
|
|
| | Artifact | Path in this repo | |
| |---|---| |
| | Dataset manifest | [`dataset_manifest/20260419_211104.json`](dataset_manifest/20260419_211104.json) | |
| | Run metadata (metrics + config) | [`runs/20260419_211104.json`](runs/20260419_211104.json) | |
| | TensorBoard logs | [`tensorboard/20260419_211104/`](tensorboard/20260419_211104/) | |
|
|