A Machine Learning project to predict rebalancing needs for citibike docks.

Purpose: Given a date and time, for each CitiBike station, predict outgoing bike demand, incoming bike demand and depletion status. Use the predictions to generate paired list of stations to/ from which to move bikes to ensure maximum rider fulfillment.

Data

Model

  • Random_Forest_bike_dock_demand.py : Script to generate Random Forest models for Bike Demand and Dock Demand.
  • predict_bike_dock_demand.py : Given datetime, predict bike demand and dock demand for all stations.
  • predict_station_status.py : Given datetime, predict station status for all stations.
  • rebalancing : Only script to run that generates rebalancing strategy. Given datetime, merges bike demand, dock demand, station status and predict the nearest stations to rebalance to and from. After generating the respective random forest models and saved in .joblib format, run the following script to generate rebalancing recommendations.
(base) Melanies-MacBook-Pro:citibike_rebalancing melaniezheng$ cd Models/
(base) Melanies-MacBook-Pro:Models melaniezheng$ python rebalancing.py '2020-07-17 9:00'

These rfc models are to huge to be uploaded to github. Please follow Model/Random_Forest_bike_dock_demand.py or christianopperman/ for further info and steps to regenerate.

  • rfc_bike.joblib
  • rfc_dock.joblib
  • depletion_status_classifier.joblib

Results

  • rebalancing results in csv files with respective datetime in the filename.