Propuesta de solución para el ejercicio de regresión de una Serie Temporal multivariante, incluyendo el análisis exploratorio, el procesado de datos y selección del modelo y la puesta en producción del mismo.
- Documentación del proyecto
- Instalacion de dependencias
- Organización del repositorio
- Ejecución del código
La documentación con el planteamiento del ejercicio, guía de instalación y los notebooks de Exploración y Selección del Modelo se puede encontrar Aquí, esta se ha realizado utilizando la librería MkDocs.
El código proporcionado utiliza Poetry como gestor de dependencias, por lo que el primer paso será Instalar la herramienta. Una vez instalada navegaremos a la carpeta raíz del proyecto y ejecutaremos el comando
poetry install
Con ello, ya deberíamos tener todas las dependencias para poder ejecutar tanto los jupyter notebooks como el código dentro del paquete. Se ha asegurado la reproducibilidad del modelo y los análisis mediante la definición de semillas para los casos donde interviene la aleatoriedad.
jcg-testdatascience-2
├── .github/ # Workflows de Github
├── data/ # Almacenamiento de datos de entrenamiento del modelo
├── dist/ # Build del paquete final
├── docs/ # Documentación del proyecto
├── jcg-testdatascience-2/ # Código fuente del paquete
│ ├── config/ # Funcionalidad relativa a configuraciones y parámetros
│ │ └── core.py # Lógica de carga de las configuraciones y parámetros
│ ├── models/ # Almacén de modelos serializados ya entrenados
│ ├── processing/ # Funcionalidad relativa al procesado de datos
│ │ └── data_manager.py # Lógica de la carga y persistencia de datos y modelos
│ ├── config.yml # Configuraciones del modelo y el paquete
│ ├── pipeline.py # Definición los transformadores de datos y el modelo de regresión
│ ├── predict.py # Lógica de la predicción de nuevos valores
│ ├── train_pipeline.py # Lógica del entrenamiento del modelo
│ └── VERSION # Versión del proyecto
├── notebooks/ # Jupyter Notebooks
│ ├── analisis-exploratorio.ipynb # Notebook con el análisis exploratorio
│ └── seleccion-modelo.ipynb # Notebook con la selección del modelo
├── tests/ # Tests del paquete
├── .gitignore # Archivos a ignorar por Git
├── mypy.ini # Configuración de MyPy
├── tox.ini # Configuración de Tox
├── pyproject.toml # Configuración del proyecto
├── mkdocs.yaml # Configuración del la documentación con MkDocs
└── README.md # README del proyecto
NOTA: se ha utilizado Este repositorio como boilerplate del proyecto.
Para facilitar la ejecución de tareas, se ha utilizado la herramienta Tox, por lo que el primer paso será instalarla.
Si queremos ejecutar el entrenamiento del modelo utilizaremos el comando
tox run -e train
Con ello, se generará un archivo .pkl dentro de la carpeta jcg_testdatascience_2/models con el modelo entrenado.
Se han creado tests para las distintas partes del código. Para ejecutarlos, usaremos el comando
tox run -e test_package
Se han utilizado las librerías mypy, flake8, isort para formatear el código y adaptarlo a las convenciones. Para ejecutar estos checks, usaremos el comando
tox run -e checks
Por último, para construir el paquete se debe utilizar el comando
poetry build
Que nos generará los archivos .whl y .tar.gz en la carpeta /dist