Este caso fue realizado durante el curso “Mi Primera Experiencia como Analista de Datos” y la idea fue crear un Motor de Reglas en Python para incrementar las ventas de una compra.
Python, Pandas, Jupyter Notebook, Power BI.
En este caso, se utilizó el Análisis de la Cesta de la Compra (o Análisis de Reglas de Asociación) para descubrir asociaciones entre los productos adquiridos por los clientes. Esta técnica se basa en la idea de que ciertos productos tienden a comprarse juntos con mayor frecuencia de la que cabría esperar por azar. Su implementación requiere la construcción de los índices de Soporte, Confianza y Lift.
Soporte: Mide la frecuencia con la que un producto se encuentra en el conjunto de productos. Esta es la probabilidad de ese producto. Esto es Soporte(A) = P(A). En términos comerciales, Soporte(A) indica la probabilidad de que el producto A aparezca en un ticket de compra. Por lo tanto, Soporte(A∩B) = P(A∩B).
Confianza: Indica la probabilidad de que se compre un producto B posterior a la compra del producto anterior A, es decir, si existe una relación entre ambos productos. Esta relación se expresa como A => B, que es la P(B/A).
Lift: El Lift permite cuantificar cuántas veces la probabilidad de comprar ambos productos juntos es mayor, igual o menor que la probabilidad de comprar cada uno por separado. Esto se realiza para controlar el efecto de los productos que se compran con mucha frecuencia, es decir, los productos muy populares. El numerador del Lift representa los productos que se compran juntos y el denominador, los que se compran por separado. Por lo tanto, el valor resultante del índice Lift puede interpretarse como:
Lift = 1; implica que no existe asociación entre A y B.
Lift > 1; implica que es probable que se compre B si se compra A.
Lift < 1; implica que es improbable que se compre B si se compra A.
Antes de crear el panel de ventas con Power BI, se debe crear un Documento de Requisitos Funcionales del Negocio. Este documento define el alcance del proyecto y las tareas específicas a realizar, incluyendo un esquema con el diseño del panel de ventas final. Este documento también evita cambios repentinos (puede consultarlo a continuación).
Uso de Python en Jupyter Notebook, Pandas y DataFrames.
Comprensión de los conceptos probabilísticos asociados al desarrollo del motor de generación de reglas.
Cómo trabajar con los indicadores de Soporte, Confianza y Lift del Análisis de la Cesta de la Compra.
Cómo interactuar con el equipo de negocios sobre los requisitos a través del Documento de Requerimientos Funcionales del Negocio.
Saber cómo crear un panel en Power BI para que cualquier persona de la empresa pueda comprender fácilmente los datos. En concreto, la adición de una nueva tabla de reglas y su relación con las demás tablas.
Se utilizó una Jupyter Notebook para ejecutar el código Python y obtener las reglas resultantes.
La base de datos de la empresa se proporcionó a nuestro Jupyter Notebook mediante un archivo .db y se utilizó la biblioteca sqlite3 para establecer la conexión.
Se utilizó Pandas para cargar una tabla completa en un DataFrame y trabajar con los datos.
Para crear el panel en Power BI, las reglas generadas por el motor de reglas se tomaron de un archivo .CSV y se generó una nueva tabla dentro de Power BI, que se vinculó a la tabla de secciones existente mediante una relación de varios a uno. Además, existe una tabla tickets que contiene todas las ventas de la empresa. La tabla de secciones contiene los nombres e imágenes de las secciones a donde pertenecen los productos de la empresa.
El Análisis de la Cesta de la Compra responde a la pregunta: ¿Cuál es la probabilidad de que un cliente compre el producto B si ya tiene el producto A en su cesta? Por lo tanto, si un cliente ya tiene bananas en su cesta, ¿cuál es la probabilidad de que también compre limones, manzanas o frutillas?
Con base en el historial de ventas (tabla tickets), el algoritmo busca combinaciones de productos que aparecen juntas en una compra, creando un conjunto de reglas (o patrones) que, a su vez, contienen tres indicadores: Soporte, Confianza y Lift. Estas reglas permiten, dado un producto elegido por el cliente, recomendar otro producto con alta probabilidad de compra, incrementando así el ticket de compra promedio.
El algoritmo parte de la base de datos de compras, que contiene todos los productos adquiridos a través de la tabla de tickets. A partir de ahí, se generan las combinaciones de todos los productos, tanto los "productos antecedentes" como los "productos consecuentes", calculando los indicadores para cada combinación. De esta forma, se obtiene una tabla con los resultados que permite identificar los patrones de compra existentes en nuestros productos para su posterior explotación en nuestro sitio web de comercio electrónico. De esta forma, si se identifica una relación muy fuerte entre los productos A y C (o sea A -> C), cuando el cliente esté en la página de A o haya añadido el producto A a su cesta, luego en la sección de productos recomendados, el producto C aparecerá en primer lugar. Por último, se fusionarán los detalles de cada producto, como su identificador, la sección y el departamento al que pertenece, en esta tabla resultante para obtener la tabla completa de reglas.
Para que los resultados sean más legibles y comprensibles para la gente de negocios, se crea un nuevo esquema para construir un nuevo dashboard que muestre los resultados y las reglas.
Puede descargar el código Python y el proyecto de Power BI desde aquí. Archivos MarketBasketAnalysis_colab.ipynb y "Sano y Fresco - Sales Dashboard".pbix.