/montevideo-bus-forecast

Predicción del flujo de pasajeros en las paradas de ómnibus del Sistema de Transporte Metropolitano (STM) de Montevideo

Primary LanguageJupyter NotebookGNU General Public License v3.0GPL-3.0

logo fing udelar

Curso Aprendizaje Automático para Datos en Grafos

Docente: Prof. Gonzalo Mateos (Universidad de Rochester, EEUU).

Docente invitado: Fernando Gama (Universidad de California Berkeley, EEUU).

Otros docentes: Marcelo Fiori y Federico La Rocca.

Fechas: 01/02/2021 al 04/02/2021 y 11/02/2021.

Web: Página principal del curso en plataforma Eva


Proyecto final del curso

Predicción del flujo de pasajeros en las paradas de ómnibus del Sistema de Transporte Metropolitano (STM) de Montevideo

Estudiante: Guzmán López

La estructura de este repositorio fue clonada de Data Science Project Template y sigue los lineamientos descritos en Manage your Data Science project structure in early stage.

  • src: Código fuente en Python y R utilizado en múltiples escenarios. During data exploration and model training, we have to transform data for particular purpose. We have to use same code to transfer data during online prediction as well. So it better separates code from notebook such that it serves different purpose.
  • test: In R&D, data science focus on building model but not make sure everything work well in unexpected scenario. However, it will be a trouble if deploying model to API. Also, test cases guarantee backward compatible issue but it takes time to implement it.
  • model: Folder for storing binary (json or other format) file for local use.
  • data: Folder for storing subset data for experiments. It includes both raw data and processed data for temporary use.
  • notebook: Todos los notebooks incluyendo el Análisis Exploratorio de Datos y fase de modelado.

Requerimientos

  • Python versión 3.9.1
  • R versión 4.0.4

Configurar ambiente para reproducir este código:

  • Clonar repositorio
git clone https://github/guzmanlopez/montevideo-bus-forecast
cd montevideo-bus-forecast
  • Opcional: instalar pyenv para obtener la versión de Python requerida
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash

# Reiniciar terminal
exec $SHELL

# Instalar Python 3.9.1
pyenv install 3.9.1

# Definir la versión de Python en la ruta donde estoy ubicado
pyenv local 3.9.1

# Habilitar la versión de Python instalada
pyenv shell 3.9.1
  • Instalar poetry como gestor de librerías y dependencias de Python
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python

source $HOME/.poetry/env

# Iniciar poetry
poetry shell
poetry env use 3.9.1
poetry env info
poetry install

Nota: instalación de PyTorch sin soporte de GPU, para soporte con GPU modificar +cpuCUDA (Ejemplo: +cu101)

# Instalar PyTorch
poetry add torch=1.8.0+cpu --platform linux --python "^3.9"

# Instalar PyTorch Geometric
poetry add torch-scatter --platform linux --python "^3.9"
poetry add torch-sparse --platform linux --python "^3.9"
poetry add torch-cluster --platform linux --python "^3.9"
poetry add torch-spline-conv --platform linux --python "^3.9"
poetry add torch-geometric --platform linux --python "^3.9"

# Instalar PyTorch Geometric Temporal
poetry add torch-geometric-temporal --platform linux --python "^3.9"

# Instalar PyTorch Lightning
poetry add pytorch-lightning