peteowlett
February 02, 2016
900

# Send More Riders

Predictive scheduling for an on demand delivery fleet

## peteowlett

February 02, 2016

## Transcript

1. ### Send More Riders! Predictive scheduling for an on demand delivery

ﬂeet @PeterOwlett

6. ### We need enough drivers to deliver on time, but not

so many we lose money
7. ### •Restaurants take longer than expected to make food •Items get

missed - we have to go back and get them •Drivers become unavailable (flat tyre etc) •Customers hard to find It gets harder …
8. ### Exam question How many drivers should we schedule for the

next two weeks in each part of London over 15 minute blocks?

10. ### Lets formulate! Where • O is orders • d is

date • z is zone

14. ### Statsmodels supports this out of the box Forecasting Daily Volume

# Decompose the raw time series decomposition = sm.tsa.seasonal_decompose(data.values, freq=7) # Extract individual components all_trend = decomposition.trend all_seasonal = decomposition.seasonal all_resid = decomposition.resid

18. ### •Vary the training range •Train on np.log(series) and transform back

Signal in the noise? Looks Seasonal Looks Seasonal Random Noise
19. ### Because we can chart each series, we can reason about

how to improve our model
20. ### Forecast each component Forecasting Daily Volume # Forecast Trend lm_lin

= LinearRegression().fit(dates, trend_vals) forecast_trend = lm_lin.predict(forecast_window) # Forecast Seasonal seasonal_pattern = np.tile(base_seasonal_pattern, math.ceil(days_to_forecast / 7.0)) forecast_seasonal = seasonal_pattern[0: days_to_forecast]

22. ### Where • O is orders • D is demand •

E is efficiency • z is zone • d is date • w is weekday • t is time of day Converting Daily Orders to Driver Hours
23. ### Zero to One Scale - neat trick Estimating Demand Curves

scaled_series = df_mean_curves.order_volume / df_mean_curves.groupby(['zone', ‘day_of_week’])\ .transform(np.sum).order_volume

Hour of Day

31. ### 1. While not as powerful as R, Statsmodels does give

you core time series tools 2. Seasonal decomposition is very meaningful to human beings 3. By using all python, we were able to ship quickly Stuff we learned