metadata
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.
| 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 |
| Run metadata (metrics + config) | runs/20260419_211104.json |
| TensorBoard logs | tensorboard/20260419_211104/ |