Somos un equipo de consultoría de datos enfocado en resolver problemas de negocio reales mediante soluciones End-to-End.
| Integrante | Rol | Links |
|---|---|---|
| Felipe Varela | 🎯 Product Owner | |
| Freddy Yaquive | 🧪 Data Scientist | |
| Ivan Martinez | 🧪 Data Scientist | |
| Sebastian Moya | 🧪 Data Scientist | |
| Nicolás Lazarte | 🚀 Scrum Master |
En el E-commerce actual, la sobreoferta de productos genera una "parálisis por análisis" en los clientes. Las tiendas pierden ventas y fidelidad por no sugerir lo que el usuario realmente desea en el momento adecuado.
Nuestra misión es eliminar la fricción en la experiencia de compra. Desarrollamos un Sistema de Recomendación Híbrido que ataca el problema mediante:
- Market Basket Analysis: Para compras impulsivas y complementarias.
- NLP (Content-Based): Para resolver el "Cold Start" de productos nuevos.
- SVD (Collaborative Filtering): Para personalización profunda basada en historial.
- 📂 Estructura del Proyecto
- ⚙️ Pipeline del Proyecto
- 🤖 Modelos Evaluados
- 📊 Resultados y Métricas
- 💻 Instalación y Requisitos
- 🚀 Uso y Ejecución
- 📝 Conclusiones del Proyecto
- ⚖️ Licencia
Organización de directorios y archivos principales del repositorio:
📂 PF-Quantum_Insights
│
├── 📂 databases/ # Archivos CSV crudos (Source)
├── 📂 mlruns/ # Logs de experimentos y métricas (MLflow)
├── 📂 modelos_recomendación/ # Notebooks de entrenamiento y lógica
│ ├── 📓 pipelineSVD.ipynb # Entrenamiento Modelo SVD (Filtrado Colaborativo)
│ ├── 📓 pipelineCC.ipynb # Entrenamiento Modelo Co-ocurrencia (Market Basket)
│ └── 📓 pipelineNLP.ipynb # Procesamiento NLP y matriz de similitud (Content-Based)
│
├── 📓 ETL.ipynb # Pipeline de Extracción, Transformación y Carga (Supabase)
├── 📓 EDA.ipynb # Análisis Exploratorio de Datos
│
├── 🚀 app_final.py # Aplicación principal (Interfaz en Streamlit)
├── 📄 requirements.txt # Dependencias del proyecto
└── 📄 README.md # Documentación
El flujo de datos sigue una arquitectura End-to-End diseñada para escalabilidad:
- Ingesta: Lectura de archivos planos (
Events,Orders,Products). - ETL (Extract-Transform-Load): Limpieza de datos, estandarización de IDs y carga a base de datos en la nube (Supabase/PostgreSQL).
- EDA (Exploratory Data Analysis): Detección de patrones, análisis de "Long Tail" y tratamiento de dispersión (Sparsity).
- Modelado: Entrenamiento de tres motores distintos (SVD, NLP, Co-ocurrencia).
- Evaluación: Rastreo de métricas (
Recall,Precision,NDCG) usando MLflow. - Despliegue: Interfaz de usuario interactiva construida con Streamlit, capaz de servir recomendaciones en tiempo real.
Para cubrir diferentes necesidades del negocio, implementamos un enfoque híbrido:
| Modelo | Tipo | Caso de Uso | Descripción Técnica |
|---|---|---|---|
| Co-ocurrencia | Reglas de Asociación | Cross-Selling (Carrito) | Calcula la probabilidad condicional (Si compras A, ¿qué tan probable es que compres B?). Ideal para compras impulsivas. |
| NLP (Contenido) | Content-Based | Cold Start (Nuevos) | Utiliza TF-IDF y Similitud del Coseno para recomendar productos semánticamente similares a partir de la descripción. |
| SVD | Filt. Colaborativo | Personalización (Home) | Factorización de matrices (TruncatedSVD) para hallar gustos latentes en usuarios recurrentes con historial extenso. |
Evaluación realizada sobre el set de prueba (Test Set) con un corte de K=5 recomendaciones.
| Modelo | Recall@5 | Precision@5 | NDCG@5 | Observación |
|---|---|---|---|---|
| Co-ocurrencia | 21.76% 🏆 | 8.73% | 0.199 | Modelo "ganador" con mayor impacto en conversión inmediata (Siguiente item). |
| SVD | 5.46% | 1.20% | 0.044 | Afectado por la alta dispersión de la matriz usuario-item (Sparsity > 99%). |
| NLP | 1.71% | 0.69% | 0.011 | Baja predicción de venta directa, pero garantiza 74% de cobertura de catálogo. |
Nota: Aunque SVD tiene métricas de ranking más bajas, explica el 29.53% de la varianza de los datos, siendo útil para capturar tendencias generales de categorías.
- Python 3.10 o superior.
- Git.
- Clonar el repositorio:
git clone [https://github.com/IvanFM888/PF-Quantum_Insights.git](https://github.com/IvanFM888/PF-Quantum_Insights.git)
cd PF-Quantum_Insights
- Crear un entorno virtual (Recomendado):
python -m venv venv
source venv/bin/activate # En Windows: venv\Scripts\activate
- Instalar dependencias:
pip install -r requirements.txt
Puedes probar el proyecto de dos maneras: accediendo a la versión online (recomendado) o ejecutándolo en tu máquina.
La aplicación se encuentra disponible públicamente en el siguiente enlace:
👉 https://pf-quantuminsights.streamlit.app/
Si prefieres correr la aplicación en tu propio entorno:
- Asegúrate de tener las dependencias instaladas.
- Ejecuta el siguiente comando en la terminal:
streamlit run app_final.py
- La aplicación se abrirá automáticamente en tu navegador (usualmente http://localhost:8501).
Si deseas actualizar los modelos con nuevos datos, ejecuta los notebooks en el siguiente orden:
ETL.ipynb(Limpieza y carga)modelos_recomendación/pipelineCC.ipynb(Matriz de co-ocurrencia)modelos_recomendación/pipelineNLP.ipynb(Matriz NLP)modelos_recomendación/pipelineSVD.ipynb(Modelo SVD)
- Integridad: Se detectaron inconsistencias críticas entre
EventsyOrder_Itemsque requerían estandarización de IDs. - Escalabilidad: La migración de CSV local a Supabase permitió centralizar la verdad de los datos y preparar el proyecto para un entorno productivo.
- Sparsity (Dispersión): Confirmamos que la matriz de interacción es extremadamente dispersa. Los usuarios interactúan con una fracción mínima del catálogo.
- Comportamiento: Existe una fuerte tendencia a la compra complementaria (Items que se compran juntos en la misma sesión) más que a la compra repetitiva del mismo item.
- El Hallazgo: El modelo de Co-ocurrencia demostró ser superior para este dataset específico, sugiriendo que las reglas de asociación (Market Basket) son más efectivas aquí que la factorización de matrices compleja.
- Estrategia Híbrida: Ningún modelo es perfecto por sí solo. La combinación de NLP (para visibilidad de catálogo nuevo) y Co-ocurrencia (para conversión de carrito) crea el sistema más robusto.
Este proyecto se distribuye bajo la licencia MIT.
MIT License
Copyright (c) 2025 Quantum Insights Team
Disclaimer: Proyecto realizado con fines educativos para la academia Henry.
