Plataforma de análisis de surtido
Predice si un producto se va a vender antes de comprarlo, y explica qué atributos separan lo que vende de lo que no.
El problema
Decidir qué entra y qué sale del surtido dependía de mirar ventas pasadas producto por producto: sin una forma sistemática de saber qué atributos correlacionan con la venta, ni de estimar si un producto nuevo se va a vender antes de comprarlo.
Qué hice
Construí una plataforma que combina cuatro familias de machine learning sobre los mismos datos: un clasificador Random Forest de vendibilidad, topic modeling sobre las descripciones de producto (TF-IDF y LDA), similitud visual con CLIP contra la base vectorial del ecosistema, y clustering K-Means y DBSCAN con visualización UMAP para explorar el surtido en dos dimensiones. Sumé un módulo propio de análisis de atributos visuales, un chat de diagnóstico con GPT-4o, y dejé los insights registrados para que otras aplicaciones del ecosistema los reutilicen en lugar de recalcularlos.
Qué resultó
En producción para los equipos de planeamiento de surtido y de compras. El patrón de insights compartidos entre aplicaciones quedó como diseño de plataforma del ecosistema, no como una app aislada.
Cómo predice
- Ventas y atributos del surtidoEntrada
- Random Forest de vendibilidadQué producto vende y cuál no
- Topic modeling de descripcionesTF-IDF y LDA
- Similitud visual con CLIPContra la base vectorial
- Clustering K-Means y DBSCANExplorado con UMAP
- Insights reutilizablesSalida: para todo el ecosistema
Cuatro familias de machine learning sobre los mismos datos, cada una respondiendo algo que las otras no ven: qué vende, de qué habla la descripción, a qué se parece visualmente y con qué se agrupa. Los insights quedan registrados para que otras aplicaciones no los recalculen.
Stack
- Python
- Streamlit
- scikit-learn
- UMAP
- TF-IDF / LDA
- CLIP
- Qdrant
- sentence-transformers
- LangChain
- GPT-4o
- Supabase
- SQL Server
- Docker
Proyecto interno de Blue Star Group — el código no es público.
Siguiente proyecto: Motor de reposición continua →