YellowCab / EVALUATION.md
l0uai
Publish causal YellowCab benchmark and model card
52f55f8
|
Raw
History Blame Contribute Delete
3.61 kB
# YellowCab evaluation
## Question
Can three chronological road images combined with past-and-current telemetry
forecast a GPS-derived taxi maneuver approximately 20 seconds ahead better than
tested single-modality and rule-based baselines?
## Frozen evaluation contract
- Published model version: `v0.1-causal`
- Published Safetensors SHA-256:
`af1a98cd96bb68d642f7a0adeedfacac37b230917afc15f3c87230a99a15b8a2`
- Training manifest SHA-256:
`8b92ad563892776cc25148f39fec6bf207e1e442c618b58fb07af7e2b899364d`
- Split SHA-256:
`bfc5e960c8af32d0ea75a5e293bb95b3125111ace2cf8452eb42feb4bc2a1a5e`
- Seed: `20260726`
- Primary metric: macro F1
The split is forward in time by complete route. The earliest 26 routes are used
for training, the next five for validation, and the newest five for testing.
Frames never cross route boundaries between splits.
## Causal-input audit
The original dataset builder could use a future-bearing fallback when the
past-to-current displacement was too small to establish a reliable heading. The
causal manifest removes that fallback. When displacement is below four metres,
heading is represented as unknown using `(sin=0, cos=1)`.
The audit changed 5,974 of 74,680 rows:
- 4,552 training rows
- 819 validation rows
- 603 test rows
The released `v0.1-causal` checkpoint was trained on the corrected manifest.
Labels still use future trajectory by definition; model inputs do not.
## Metrics
Macro F1 is primary because the test set is imbalanced. Accuracy, balanced
accuracy, weighted F1, log loss, Brier score, and 15-bin expected calibration
error are secondary.
The macro-F1 confidence interval is computed with 500 bootstrap resamples of
complete test routes. This preserves within-route dependence instead of treating
8,594 sequential examples as independent observations.
## Reproduction from published predictions
The repository publishes labels, predictions, probabilities, and generic route
groups for every test example in `eval_predictions.csv`. It excludes images,
capture identifiers, timestamps, grid cells, and geographic data.
```bash
python -m pip install numpy pandas scikit-learn
python recompute_metrics.py
```
The script checks that probability rows sum to one and reproduces the core
point estimates and route-clustered macro-F1 interval.
## Selective prediction
`selective_metrics.csv` evaluates the confidence-based abstention rule. At the
default 0.45 threshold, the model retains 5,971 of 8,594 examples (69.5%
coverage). Accuracy among retained examples is 0.6583 and macro F1 is 0.4327.
Selective metrics describe only the accepted subset. They do not mean the
abstained examples disappear operationally; a real system must route them to a
fallback or human review process.
## Interpretation
YellowCab has the highest macro F1 among the tested models. It does not win every
metric: telemetry gradient boosting has higher balanced accuracy, and a majority
classifier has higher raw accuracy because most examples are `continue`.
This supports use as a ranking, indexing, and research model. It does not support
claims of safe actuation, universal geographic generalization, or global
state-of-the-art status.
## Remaining evaluation work
A stronger future release should add:
- an independently human-labeled gold test set;
- a separate calibration split;
- evaluation across additional cities, camera mounts, weather, and daylight;
- selective-risk curves for the abstention threshold;
- an operational video-retrieval study at fixed event recall; and
- independent replication on a public, task-compatible benchmark.