Views
No views yet
| Property | Value |
|---|---|
| Source | Kaggle — DoorDash Historical Delivery Data |
| Rows | 197,428 orders |
| Features | 16 columns (numeric + categorical) |
| Target | delivery_duration_seconds |
total_onshift_dashers — how many dashers are availabletotal_busy_dashers — how many dashers are currently occupiedtotal_outstanding_orders — current order backlogstore_primary_category — type of restaurantestimated_store_to_consumer_driving_duration — estimated driving time
Can we predict how long a DoorDash delivery will take based on order details, restaurant category, and real-time dasher availability?
dasher_util_ratio — how busy are available dashers (busy/onshift)order_pressure — outstanding orders per available dasheris_peak_lunch / is_peak_dinner — peak hour flagsis_weekend — weekend flaglog_subtotal — log-transformed order valueprice_spread — range between cheapest and most expensive itemdasher_idle — dashers available but not workingcluster — KMeans cluster ID (5 clusters)| Model | MAE | RMSE | R² |
|---|---|---|---|
| Baseline Linear Regression | 11.2 min | 14.7 min | 0.233 |
| Linear Regression (Engineered) | 11.2 min | 14.7 min | 0.240 |
| Random Forest | 10.8 min | 14.1 min | 0.294 |
| Gradient Boosting ✓ | 10.5 min | 13.9 min | 0.319 |

| Model | Macro F1 |
|---|---|
| Logistic Regression | 0.502 |
| Random Forest | 0.518 |
| Gradient Boosting ✓ | 0.533 |

GradientBoostingRegressor — R² = 0.319GradientBoostingClassifier — Macro F1 = 0.533| File | Description |
|---|---|
regression_model.pkl | Trained GradientBoostingRegressor + scaler + features |
classification_model.pkl | Trained GradientBoostingClassifier + thresholds |
notebook.ipynb | Full analysis, EDA, training and evaluation code |