Airport Taxi Demand Forecasting

Hourly time-series forecast for airport taxi demand using lag features, seasonality analysis, and temporal validation. Compares a seasonal baseline, random forest, and XGBoost against a stated RMSE target.

Choose the ZIP for a complete local setup. The notebook-only download requires the datasets and dependencies from that bundle.

Evaluation plan.

The revised workflow removes target leakage from rolling features and selects the model before final testing. The earlier RMSE of 42.9 is retired because the previous evaluation was optimistic.

Selection

Temporal

time-ordered training and validation

Target RMSE

≤ 48

project target, not a claimed result

Forecast horizon

1 hour

previous observed orders are available

Test split

10%

last chronological portion of the data

What the project tries to solve.

Forecast the number of taxi orders in the next hour so airport driver supply can be positioned more effectively during demand spikes.

Status: Revised study project. Includes data, dependencies, and a smoke-test mode.

Notebook: airport_taxi_demand_forecasting.ipynb

The ZIP includes the notebook, README, pinned Python dependencies, a command-line runner, and all required CSV datasets.

An hourly demand estimate could help plan driver availability. A comparison against the previous day makes it clear whether a more complex model adds useful predictive value.

Demand changes by hour and over the season. I chose this problem to practice using only information available at forecast time and evaluating models in chronological order.

How I approached it.

Built lagged and calendar-based features from hourly order history.

Inspect training-period trends and hour-of-day averages before fitting models.

Compare a previous-day baseline, random forest, and XGBoost using the same validation period.

Used temporal validation rather than ordinary shuffled cross-validation to preserve forecasting integrity.

What I would improve next.

Add weather, flight schedules, and holiday indicators where those inputs are available at forecast time.

Extend the walk-forward evaluation to multiple seasons and quantify drift.

Package the best model into a simple forecast endpoint or dashboard mockup.

PythonXGBoostScikit-learnPandas

Get in Touch

Send a brief note, or email me directly.

Your name, email, and message go through FormSubmit to my inbox. Please avoid sensitive personal details. Privacy details.

Continue to FormSubmit to complete its spam verification and send your message. If that step fails, use email instead.

Prefer a text? +1 (669) 226-7751