/TorontoBikeShare

Project using machine learning to predict amount of bikes left over at each bike share station in Toronto

Primary LanguageHTML

Note

This project has been dropped due to insignificant data to do any prediction

TorontoBikeShare

Project using machine learning to predict amount of bikes left over at each bike share station in Toronto.

Data

Target Data

Want to predict bikes_left at the end of each hour of the day. This variable is a vector of number of bikes currently at each station. It is an predictor and target variable.

Predictor Data

Model takes in a trip, current weather for the trip, and the bikes_left for each station

Model

The model is an RNN with LTSM nodes, teacher forcing and the model loops on itself (the last node in the RNN outputs to the first node). The RNN's timestep outputs represent an hour of time throughout a day

Production Architecture (out of date -- incorrect)

FrontEnd

Holds all code running front end realtime visualization and user inputs

RealTimeDataReceiver

Calls Toronto's API to get realtime data, then formats and sends the data to the training model through the controller

PredictionModel

Holds a copy of the training models parameters to allow for experimentation and testing on a model without possibly ruining the trained model. Also allows for user input of data without side effects

TrainingModel

The meat and potatoes of the project. Holds the model that is being trained off of realtime data and was already trained off of the 2017 dataset.

BikeShareController

Central controller for all of the project. Holds API methods for all of the other services.

API Calls:
  • FrontEnd
    • addNewDataToFront
    • predictUserInputData
    • getPredictionData
  • RealTimeDataReceiver
    • addNewTrip
  • Prediction Model
    • getPrediction
    • getTrainingParameters
  • Training Model
    • getModelParameters
    • trainNewTrip