- Introducción
- Objetivos y Alcance del Proyecto
- Roles
- Etapas del Proyecto
- Estructura del Repositorio
- Metodologia de Trabajo y Gestión de las tareas
- Tech Stack
- Arquitectura y Workflow
- Analisis Exploratorio de Datos
- Modelo de Machine Learning
- KPIs
- Entregables
- Cierre
Somos Iterable Consulting, una firma de consultoría especializada en brindar soluciones de negocios basados en tecnologias escalables, robustas y basados en datos.
Nuestra labor se centra en el análisis de datos procedente de diversas fuentes y en diferentes formatos, realizar el debido procesamiento y analisis para la identificación de patrones y tendencias
En cuanto al trabajo que nos concierne, nuestro cliente, una empresa lider en el rubro gastronomico que forma parte de un importante conglomerado de empresas de restaurantes y afines, se ha propuesto abrir nuevas unidades de negocios en Estados Unidos, por lo que nos ha pedido elaborar un proyecto de data analytics que permita evaluar y definir los mercados del rubro gastronomico y de ocio mas atractivos para la inversion en dicho país.
Los requerimientos expresados por nuestro cliente se resumen así:
- Predecir cuáles serán los rubros de los negocios que más crecerán (o decaerán).
- Desplegar un analisis de mercado que les permita saber dónde es conveniente emplazar los nuevos locales de restaurantes y afines,
- La implementacion de un sistema de recomendación de restaurantes para sus usuarios basado en las experiencias registradas por distintos comensalesen en las plataformas Yeld y Google Maps sobre hoteles, restaurantes y otros negocios afines al turismo y ocio.
Para la consecucion de estos requerimientos nuestro cliente puso a nuestra disposicion sendos datasets producidos y mantenidos por las plataformas Yelp! y Google para usarlos como fuente de datos obligatorios, aunque no de manera exclusivos.
Entonces nuestro objetivo es el de, a partir de dicha fuente de datos, y aplicando técnicas de análisis de datos, de machine learning y visualización, implementar soluciones da datos pertinentes y extraer informacion releveante que satisfaga los requerimientos de inversion y captacion de usuarios de nuestro cliente.
Dentro de Iterable, conformamos un equipo de trabajo de cinco personas encargado de sacar adelante el proyecto, asignando los roles especificos a cumplir por cada uno.
Cabe mencionar, que como la metodología de trabajo es por etapas, los roles pueden verse sujetos a modificación en función de las necesidades del proyecto.
Se ha dispuesto cada avance del proyecto en tres etapas de la siguiente manera:
Semana 1 - Etapa de Puesta en Marcha del proyecto y Trabajo Inicial de los Datos
En esta etapa se contextualiza la problematica del proyecto, se definen los objetivos y el alcance así como los indicadores claves de rendimiento a evaluar. Además, se fundamenta el stack tecnologico elegido, se describe el flujo de trabajo y el EDA preliminar de los datos.
Semana 2 - Etapa de Data Engineering
En esta etapa se implementa el data pipeline automatizado que extrae, limpia y organiza los datos y finalmente almacena el producto final en el datawarehouse, listo para su uso posterior.
En esta etapa tambien se presenta pruebas de concepto de los entregables de la etapa que sigue (ML y Dashboard)
Semana 3 - Etapa de Data Analytics y Machine Learning
En esta etapa final, se disponibilizan las soluciones de machine learning requeridas por el cliente y se presentan las conclusiones relacionadas al requerimiento del negocio utilizando como apoyo herramientas de visualizacion
En esta etapa tambien se hace entrega de se explica el repositorio completo y toda la documentacion del proyecto.
Carpeta 'Sprint_1'.-
contiene todos los entregables de la etapa 1
Carpeta 'Sprint_2'.-
contiene todos los entregables de la etapa 2
Carpeta 'data'.-
contiene los datasets del proyecto
Archivo 'README.md'.-
archivo actual.
Carpeta 'src'.-
carpeta fuente del archivo actual.
El equipo de trabajo acordo la adopcion de la metodología de trabajo Scrum como instrumento de apoyo para el desarrollo en tiempo y forma de los sucesivos entregables del proyecto. Algunas de las actividades a realizar bajo esta metodologia son la planificacion de cada estapa del proyecto, y la organizacion para el desarrollo colaborativo.
Ademas, para la gestion de las tareas se utilizo la herramienta Jira Software. Las tareas, su duración y fecha, su avance y porcentaje de completitud se presentan a continuación.
Para visualizar el diagrama de Gantt en la plataforma de Jira Software acceda al siguiente enlace: Diagrama de Gantt
EL equipo de trabajo opto por utilizar los servicios cloud de Google Cloud Platform para la implementacion del data pipeline automatizado, el cual incluye la ingesta de datos, automatizacion de procesos, y el despliegue de las soluciones de datos, incluido el entrenamiento del modelo de ML
Para la automatizacion del proceso de ETL, implementamos Google Cloud Functions, al ingresar un archivo al Bucket indicado se inicia el proceso de ETL, que incluye la validacion, transformacion, limpieza y carga de datos al Data Warehouse en Big Query.
- Cloud Storage Buckets como datalake
- Cloud Functions para realizar el ETL de los datos
- BigQuery, como datawarehouse para almacenar y procesar los datos.
- Python para implementar los modelos de aprendizaje.
- Power Bi para la visualización de datos y KPIs.
El workflow del proceso se presenta a continuación:
Se realizaron tareas de importacion de librerias, carga del dataset
Se realizaron analisis sobre todas las variables significativas
Se confecciono un informe escrito sobre los resultados obtenidos en la etapa de analisis
El Sistema de Recomendación a diseñar tendra las siguientes caracteristicas:
- Personalización: Proporcionar recomendaciones basadas en las preferencias de los usuarios y las tendencias de reseñas a través de los comentarios en la plataforma Yelp y Gmaps.
- Eficiencia: Optimizar el tiempo y los recursos de inversión al ofrecer recomendaciones precisas y relevantes.
- Análisis de Sentimientos: Incorporar análisis de sentimientos en las reseñas para escalar en recomendaciones personalizadas y fidedignas
# Aqui se puede visualizar el DEPLOYMENT de los Modelos de Machine Learning " Recomendacion - Prediccion " : https://pml-1740.onrender.com/docs#/default/get_recommendations_recommendations__get
A continuación se presentan los 8 KPIs propuestos y sus métricas asociadas:
KPI 1: Aumentar las reseñas de usuarios nuevos en un 10% con respecto al año anterior
KPI 2: Aumentar la cantidad de restaurantes nuevos reseñados en un 5% con respecto al año anterior
KPI 3: Aumentar la cantidad de reseñas por restaurante en un 10% anual con respecto al año anterior
KPI 5: Aumentar el promedio de calificaciones de los restaurantes en un 5% con respecto al año anterior
KPI 6: Reducir en un 10% la cantidad de restaurantes de los que obtuvo reseñas negativas con respecto al año anterior
Los entregables de la semana 1 se encuentran en la carpeta Sprint_1:
- Tratamiento de datos previo al EDA preliminar:
Los entregables de la semana 2 se encuentran en la carpeta Sprint_2:
-
Carpeta con el tratamiento ETL del los datasets de Goglew Maps y Yelp!:
-
Carpeta con subcarpetas de las implementaciones de la carga incremental
-
Carpeta del Modelo de ML con los archivos de exploracion e implementacion:
-
[Un readme explicativo] (Sprint_2/Modelos_Machine_Learning/README.md)
-
Diccionario de datos: Diccionario_de_Datos.ipynb
Los entregables de la semana 3 se encuentran en la carpeta Sprint_3:
Te parecio interesante el proyecto? No olvides regalarnos una ⭐.
Tienes una idea en mente o encontraste algun bug? Por favor abre un issue o inicia una discusion.