Skip to main content
Open llms.txtCopy tools

NYC Taxi Benchmarks

Bottom Line

The maintained JSON records a bounded real-data run on 2024 NYC TLC yellow taxi data. It compares one primary cartoboost row with XGBoost, LightGBM, CatBoost, and scikit-learn HistGradientBoosting under fixed settings. This current 50,000- row, 24-tree qualification run includes random, spatial-holdout, and temporal holdouts for duration and fare. Lane-demand evidence is reported separately in the maintained forecasting artifact; neither artifact claims an AutoGeo selector result because that selector is not shipped.

This is bounded evidence, not a universal claim: it uses four months, a 50,000-row sampled trip frame, fixed hyperparameters, and local hardware timing.

Data

FieldValue
SourceNYC TLC trip records
Source URLNYC TLC trip record data
Taxi typeYellow
PeriodJanuary 2024 through April 2024
Sample size50,000 trip rows
Duration rows50,000
Fare rows50,000
Dataset hashsee maintained results.json
Zone treatmentTrain-only smoothed target-mean zone features for all eligible models

Raw TLC files stay under data/nyc_taxi/ and are not committed. The maintained run used --no-plots, so missing local real inputs still hard-fail instead of silently downgrading the benchmark.

Reproduce

PYTHONPATH=python uv run --group dev --group bench python \
scripts/run_nyc_taxi_quality_benchmarks.py \
--no-plots \
--sample-size 50000 \
--months 1,2,3,4 \
--output-dir docs/assets/nyc_taxi_benchmarks \
--models cartoboost,lightgbm,xgboost,catboost,hist_gradient_boosting \
--n-estimators 24 \
--cartoboost-n-estimators 24 \
--tasks duration,fare \
--model-workers 1

Generated artifacts:

  • docs/assets/nyc_taxi_benchmarks/results.json
  • docs/assets/nyc_taxi_benchmarks/results.jsonl
  • docs/assets/nyc_taxi_benchmarks/results.md

The JSON and Markdown artifacts record the runtime resource snapshot, baseline dependency status, split manifest hashes, comparability audit, and output artifact sizes. New runs of scripts/run_nyc_taxi_quality_benchmarks.py persist train_index_sha256 and test_index_sha256 per split. LightGBM and CatBoost are part of the maintained roster and run on the same footing as the other learned baselines in the validated environment.

BaselinePackageImportVersionImportableRequired classClass available
sklearnscikit-learnsklearn1.9.0true
xgboostxgboostxgboost3.3.0trueXGBRegressortrue
lightgbmlightgbmlightgbm4.6.0trueLGBMRegressortrue
catboostcatboostcatboost1.2.10trueCatBoostRegressortrue

Comparability Audit

CheckResult
Same outer splits for requested modelstrue
Primary metricRMSE
Selection modeFixed settings, no HPO
Selection uses outer test labelsfalse
Same feature-access policytrue
Train-only target encodingtrue
Segment diagnostics used for selectionfalse
Completed external baselinesCatBoost, ExtraTrees, HistGradientBoosting, LightGBM, mean, RandomForest, Ridge, XGBoost
Skipped requested external baselinesnone
CartoBoost/external comparison rows7

Comparison Summary

For each runnable learned-model split, the table compares the single primary cartoboost row with the lowest-RMSE external baseline that finished under the same task, split, sample, target transformation, and global settings.

Task / splitCartoBoost RMSECartoBoost WAPEBest external baselineExternal RMSEExternal WAPERMSE deltaR2 deltaResult
Duration / random0.3257290.037797HistGradientBoosting0.3418850.039919-0.016156+0.022112CartoBoost lower RMSE
Duration / spatial holdout0.3283950.036862HistGradientBoosting0.3528260.040023-0.024431+0.025444CartoBoost lower RMSE
Duration / out of time0.3308250.038554HistGradientBoosting0.3457720.040406-0.014947+0.020301CartoBoost lower RMSE
Fare / random0.1729490.041365HistGradientBoosting0.1791550.042961-0.006206+0.008249CartoBoost lower RMSE
Fare / spatial holdout0.2740820.058724HistGradientBoosting0.2411670.053757+0.032915-0.037310External lower RMSE
Fare / out of time0.1796870.042392HistGradientBoosting0.1860560.044033-0.006369+0.008575CartoBoost lower RMSE

What the Rows Mean

Task / splitPrediction unitTargetValidation questionSignal used by CartoBoost
Duration / randomOne completed taxi tripLog trip duration in secondsCan the model explain ordinary held-out trips drawn from the same year-wide trip distribution?Trip distance, passenger count, hour/day periodicity, pickup/dropoff zones, and route geometry.
Duration / spatial holdoutOne completed taxi trip from held-out pickup zonesLog trip duration in secondsDoes the duration structure transfer when pickup zones are held out?Spatial splitters and route geometry rather than memorizing the validation rows.
Fare / randomOne completed taxi tripLog total fare amountCan the model recover fare structure for ordinary held-out trips?Distance, pickup/dropoff zones, hour/day effects, and cartometric route features.
Fare / spatial holdoutOne completed taxi trip from held-out pickup zonesLog total fare amountDoes fare modeling generalize to zones not present in the training pickup set?Route and zone geometry carry transferable fare signal beyond target-mean zone encodings.
Duration / out of timeOne later-period taxi tripLog trip duration in secondsDoes the model generalize forward to later pickup timestamps without timestamp overlap?Earlier pickup/dropoff, trip, and time features only.
Fare / out of timeOne later-period taxi tripLog total fare amountDoes fare modeling generalize forward in time without timestamp overlap?Earlier pickup/dropoff, trip, and time features only.

Interpretation

  • This reduced run meets the documented comparison threshold on three of four duration/fare spatial and out-of-time comparisons. Fare spatial holdout remains the documented miss.
  • The official AutoGeo admission audit counts zero real family wins because the selector is not shipped and this artifact is not a leakage-safe AutoGeo evidence package.
  • The comparisons are fair at the benchmark level: same sample, same split rules, same fixed estimator budget, and the same feature-access policy.
  • The pickup-demand spatial holdout skips learned models because held-out pickup zones have no training demand history; reporting a learned score there would collapse to a prior rather than test transferable structure.
  • LightGBM and CatBoost are included in the maintained roster and finished the current run under the same sample, split, and estimator budget as the other learned baselines.

Current Artifacts

  • Results JSON
  • Results JSONL
  • The generated results report is maintained at docs/assets/nyc_taxi_benchmarks/results.md.
  • Asset metadata is maintained at docs/assets/nyc_taxi_benchmarks/README.md.