Big data en el mundo del retail: segmentación
de clientes y sistema de recomendación
en una cadena de supermercados de Europa
César Rogelio Cam Gensollen
https://orcid.org/0000-0003-1935-3853
Universidad de Lima, Facultad de Ingeniería y Arquitectura, Lima, Perú
Recibido: 31 de mayo del 2021 / Aprobado: 29 de junio del 2021
doi: https://doi.org/10.26439/ing.ind2022.n.5808
RESUMEN. En esta investigación se presentan los conceptos y técnicas utilizados en un proyecto de big data para una compañía europea de supermercados. Se propuso la segmentación de clientes, utilizando el algoritmo k-medias, y un sistema de recomendación a través de la librería LightFM de Python. Entre las principales conclusiones, se puede indicar la importancia de definir adecuadamente el problema por resolver, el uso correcto de la infraestructura de big data, y la relevancia del análisis exploratorio del conjunto de datos y su preprocesamiento, así como la aplicación de la metodología de proyectos TDSP (Team Data Science Process), orientada a los proyectos de big data.
PALABRAS CLAVE: retail / segmentación / sistema de recomendación / big data /
aprendizaje automático
Big data in the retail world: customer segmentation
and recommender system in a European supermarket chain
ABSTRACT. In this research, we want to present the concepts and techniques used in a big data project for a European supermarket company, through a customer segmentation proposal, using the k-means algorithm, and a recommender system, via Light FM library. The main conclusions include the importance of adequately defining the problem to be solved, the correct use of the big data infrastructure, the relevance of the exploratory analysis of the dataset and its pre-processing, as well as the use of the TDSP methodology (Team Data Science Process), oriented to big data projects.
KEYWORDS: retail / segmentation / recommender system / big data /
machine learning
Correo electrónico: crcam@ulima.edu.pe
INTRODUCCIÓN
De acuerdo con Schermann et al. (2014), el término big data resume los desarrollos tecnológicos en el área de almacenamiento y procesamiento de datos, que brindan la posibilidad de manejar aumentos exponenciales en el volumen de datos presentados en cualquier tipo de formato en periodos de tiempo que disminuyen constantemente (Chen, Chiang & Storey, 2012; Lycett, 2013). El big data brinda la oportunidad no solo de manejar, sino también de usar y agregar valor a grandes cantidades de datos provenientes de redes sociales, imágenes y otras tecnologías de información y comunicación (Schermann et al., 2014).
Por otro lado, en estos tiempos de gran incertidumbre, el negocio de retail necesita reinventarse por múltiples motivos: pandemia, exceso de competencia, consumidores más exigentes, presión regulatoria, globalización, entre otros. Y es ahí donde el big data y toda su potencia pueden entrar en juego para ayudar a las empresas a monetizar los datos, en particular para comprender hábitos de consumo y poder atender a los clientes de forma más eficiente (Cam et al., 2020). En ese sentido, se usará la información de una cadena de supermercados localizada en más de veinte países de Europa. Los datos para el presente trabajo corresponden a tiendas localizadas en España.
El propósito de este trabajo es presentar los pasos que se pueden desarrollar para poder atender estos retos a través de una propuesta de big data, desplegando la infraestructura en nube para procesar grandes volúmenes de información y así comprender los hábitos de consumo de los clientes. Esto permite desarrollar una propuesta de segmentación de clientes y un sistema de recomendación que dan soporte al desarrollo de acciones comerciales focalizadas por cada segmento de clientes.
Como antecedentes de la propuesta de segmentación de clientes utilizando el algoritmo de k-medias, la revisión de literatura menciona, entre otros, los trabajos de Chen, Sain y Guo (2012); Pascal et al. (2015); Aryuni et al. (2018), y Kansal et al. (2018). De igual forma, con respecto a los sistemas de recomendación, en la revisión de literatura correspondiente, se pueden hallar, entre otros, los trabajos de Christodoulou et al. (2017) y de Fang et al. (2018).
La contribución principal del presente trabajo puede considerarse en dos sentidos. El primero de ellos es la aplicación práctica del aprendizaje automático a dos situaciones específicas: la segmentación de clientes y el desarrollo de un sistema de recomendación en una cadena de supermercados. El segundo aporte corresponde a la utilización de forma práctica y concreta de la metodología TDSP a la gestión de este proyecto.
De acuerdo con la metodología de proyectos propuesta, se han seguido estas etapas: la comprensión del negocio, la captura de datos, el modelado y, finalmente, la aceptación y puesta en producción. En la parte de arquitectura de big data, se han utilizado los microservicios de AWS.
MATERIALes Y MÉTODOS
Definición del problema
El problema consiste en identificar hallazgos relevantes en los datos, que permitan proponer acciones comerciales. Por lo tanto, los retos que plantea este problema son estos:
Propuesta de solución
La segmentación de clientes consiste en clasificar a los consumidores en diferentes grupos según ciertas características, necesidades o deseos comunes. En ese orden de ideas, es importante indicar que, en la gran mayoría de los casos, las empresas son conscientes de la importancia de la segmentación de mercado; sin embargo, no conocen cómo desarrollar un proceso de segmentación eficiente o cómo aplicarla, por lo que pierden mucha efectividad cuando se dirigen al consumidor. Esto provoca que los programas de fidelización y las promociones no tengan éxito, además del desperdicio de recursos de marketing (Doğan et al., 2018).
Asimismo, la segmentación es importante para que la empresa pueda crear segmentos rentables y reaccionar al segmento seleccionado en función de sus ventajas competitivas (Doğan et al., 2018).
Se plantea la propuesta de solución a través de las siguientes etapas:
Segmentos obtenidos
Hallazgos relevantes
Resultados del modelo de recomendación
Propuesta de acciones o comunicaciones segmentadas a los consumidores, en función de sus intereses
Gestión de proyectos
Un componente relevante dentro de un proyecto de big data es la propia gestión del proyecto, porque ayuda a cumplir con los objetivos que se está buscando alcanzar, y a definir los roles y tareas asociadas al proceso de entrega de valor.
Otro componente importante es la exploración y experimentación. Las áreas de negocio no son capaces de definir requisitos detallados al principio, y lo más probable es que, antes de encontrar un buen modelo, se tendrá que probar y descartar otros. Los sucesivos refinamientos de modelos ya incluyen el cambio como un elemento fundamental y beneficioso (Cam et al., 2020).
Desde ese punto de vista, se considera que la metodología TDSP (Team Data Science Process) de Microsoft proporciona el marco de referencia necesario, por tratarse de una metodología ágil e iterativa que permite entregar soluciones y aplicaciones en contextos de big data, así como definir los roles que intervienen en el proyecto (Microsoft, 2021). La figura 1 muestra la representación gráfica del ciclo de vida de TDSP.
Figura 1
Representación gráfica del ciclo de vida de TDSP
Nota. De What is the Team Data Science Process, por Microsoft, 2021 (https://docs.microsoft.com/en-us/azure/architecture/data-science-process/overview). Derechos de autor 2021 Microsoft.
El ciclo de vida de un proyecto desde la metodología TDSP comprende las siguientes etapas iterativas:
Figura 2
Proceso de modelado
Nota. De Memoria trabajo final. Máster en Big Data Engineer (p. 6), por C. Cam, G. Hidalgo, C. Huérfano y J. Medina, 2020, Universidad de Barcelona.
Entonces, al utilizar esta metodología de proyectos TDSP en este caso de aplicación, se tiene lo siguiente:
Comprensión del negocio
De acuerdo con lo presentado anteriormente, el contexto de negocios para este caso de aplicación es el de una cadena de supermercados. Por lo tanto, el modelo de negocios se sustenta en la atención presencial a través del formato de tiendas (canal presencial) y la atención virtual a través de la página web (canal digital). En ambos canales, la empresa tiene una oferta amplia y variada de productos perecibles y envasados, orientados principalmente al consumo de alimentos. Una gran cantidad de tiendas a lo largo de la nación aumenta la presencia y cobertura de la cadena. El canal virtual está dirigido a atender a los clientes que buscan experiencias más digitales al momento de la compra; por lo tanto, es de especial importancia el contenido relevante que se vaya a colocar en la página web, así como la facilidad de navegación y de pago con medios digitales.
Los retos para esta empresa están en entender qué segmentos de clientes pueden identificar desde la perspectiva de los datos y desarrollar un sistema de recomendación que ayude a aumentar las ventas, de acuerdo con los gustos y preferencias de los clientes.
Captura de datos
Para el presente proyecto, se usarán dos tipos de fuentes de datos:
Figura 3
Arquitectura de big data
Nota. De Memoria trabajo final. Máster en Big Data Engineer (p. 9), por C. Cam, G. Hidalgo, C. Huérfano y J. Medina, 2020, Universidad de Barcelona.
Una vez concluido el primer análisis exploratorio con la muestra de datos, se procede a desplegar la siguiente arquitectura de big data en Amazon Web Services (AWS):
Tal como se propone en la etapa de captura de datos, se utiliza Twitter como fuente de datos externa. Para tal efecto se ha considerado la tubería representada en la figura 4.
Figura 4
Tubería para captura de tuits
Nota. De Memoria trabajo final. Máster en Big Data Engineer (p. 10), por C. Cam, G. Hidalgo, C. Huérfano y J. Medina, 2020, Universidad de Barcelona.
Modelado
En esta etapa del proyecto, la idea es poder identificar las variables más representativas que serán utilizadas en los modelos de aprendizaje automático. Este paso es de vital importancia, pues requiere que el equipo del proyecto sea capaz de identificar adicionalmente las variables explícitas, aquellas que contienen potenciales hallazgos relevantes y que pueden generar un alto valor para el negocio. En otras palabras, si bien los datos “crudos”, una vez preprocesados, se pueden usar directamente en los modelos de aprendizaje automático, a menudo es necesario identificar ciertas relaciones o variables que no son tan explícitas y que pueden enriquecer el modelamiento; de ahí que sea de especial interés en esta actividad la participación de los analistas del negocio a fin de contextualizar los requerimientos y preguntas que los diferentes modelos deben tratar de solucionar (Cam et al., 2020).
Al identificar las mejores relaciones y variables, se deben realizar dos tareas en paralelo: seleccionar los modelos de aprendizaje automático que se van a utilizar y separar los datos en grupos de datos para entrenamiento y prueba (training y testing), con la finalidad de ejecutar los modelos seleccionados. Una vez obtenidos los resultados, se procede a medir la performance de estos, por ejemplo, con la métrica RMSE (el error cuadrático medio mide la cantidad de error entre dos conjuntos de datos y es una de las estadísticas más usadas) o la matriz de confusión, según corresponda. Esta revisión del rendimiento de los algoritmos debe hacerse de forma conjunta con los analistas del negocio, de forma tal que se puedan recoger sus impresiones respecto de cuáles son los algoritmos que se ajustan más a las necesidades del negocio y si es necesario replantear las relaciones y variables o refinar los modelos de aprendizaje automático con la finalidad de obtener mejores resultados (Cam et al., 2020). Todo esto, tal como se muestra en figura 1.
Primera segmentación
En este primer ejercicio de generación de segmentos (clústeres), se utilizará la muestra de datos del primer análisis descriptivo (muestra de datos). Para este fin, se hará la generación de clústeres a través de k-medias, que es un algoritmo iterativo donde el número k de clústeres o segmentos está predeterminado y el algoritmo iterativamente asigna cada dato a uno de los k clústeres en función de la similitud de características (Cam et al., 2020). Este algoritmo pertenece al ámbito de los algoritmos no supervisados, dado que las observaciones que se desea segmentar no cuentan con una etiqueta que permita determinar de qué grupo es cada dato.
De acuerdo con Pérez (2013), k-medias es el algoritmo más importante de clasificación no jerárquica desde los puntos de vista conceptual y práctico. Parte de unas medias arbitrarias y, mediante pruebas sucesivas, contrasta el efecto que sobre la varianza residual tiene la asignación de cada uno de los casos a cada uno de los segmentos. En otras palabras, se busca que cada dato se encuentre muy cerca de los de su mismo segmento y los segmentos lo más lejos posible entre ellos.
En el presente trabajo, se utiliza el criterio gráfico del “codo” para especificar el número k de segmentos (clústeres) por ser encontrados, ya que este es un método que utiliza la distancia media de los datos a su centroide. Eso significa que se fija en las distancias dentro del clúster; por lo tanto, cuanto más grande es el número de segmentos k, la varianza intraclúster tiende a disminuir.
En esta primera segmentación, se va a construir un juego de datos con la base de datos customers como la base principal, buscando asociaciones con las otras tres bases de datos a través de variables sintéticas. A efectos de identificación, se mantienen el código del cliente y la edad.
Las variables sintéticas que se van a crear son las siguientes: antigüedad de cliente (fecha del último ticket menos la fecha de registro como cliente) en la tabla de customers; y, en la tabla de tickets, promedio de visitas al mes (promedio de tickets generados por un cliente en un mes), artículos por mes (promedio de artículos adquiridos por mes por un cliente), cancelado por mes (promedio de pagos mensuales de un cliente) y descuento por mes (promedio de descuentos recibidos al mes por un cliente). Estas variables se complementan con siete variables sintéticas que se desarrollan para los siete grupos de mercancías de la tabla de products (promedio mensual de consumo por grupo de mercancías por cliente en cada visita).
Asimismo, se procederá en ambas segmentaciones al proceso de normalización de datos a fin de evitar que las variables con mayores unidades tengan mayor influencia en la distancia. Asimismo, los valores nulos, duplicados o inconsistentes serán eliminados.
Segunda segmentación
En este segundo ejercicio de generación de segmentos, se explora la posibilidad de enriquecer los datos de la compañía de supermercados con datos externos a la organización, como los tuits que los clientes emiten en la cuenta oficial de la empresa y que permiten valorar si esta red social puede ayudar a enriquecer el proceso de segmentación. Asimismo, se contribuirá con el área de Mercadotecnia y Digital, que tiene interés en investigar sobre cómo el coronavirus ha afectado al sector retail y el apoyo que las redes sociales suponen para la compañía.
Para este efecto, se usarán las infraestructuras de big data presentadas en las figuras 5 y 6; de esta manera, se pueden gestionar mayores volúmenes de datos y recoger tuits en tiempo real. La propuesta consiste en analizar la información que se recoge en tiempo real y así poder evaluar si es posible obtener información que pueda complementar el presente trabajo, tanto para la segmentación como para el sistema de recomendación.
Dadas las lecciones aprendidas de la segmentación inicial, los atributos seleccionados para este proceso de segmentación son antigüedad, promedio de visitas, cancelado por mes, descuento por mes y la nueva columna que se crea al calcular el gasto en el supermercado en relación con la renta media de la comunidad. Con este juego de datos, se procede a utilizar el algoritmo de k-medias, con un valor sugerido de cinco segmentos (criterio gráfico del “codo”), lo cual arroja una clasificación adecuada. De las diversas iteraciones, se puede concluir que la variable antigüedad es la predominante en el proceso de segmentación; por ende, la integridad entre las tablas de clientes y tickets resulta fundamental para la propuesta.
Sistema de recomendación
El sistema de recomendación se desarrollará en función de dos estrategias. La primera busca identificar el cliente y sus hábitos de consumo para sugerir, según este historial, un conjunto de diez productos que se asemejen a lo que un cliente consume, pero que nunca ha consumido. La segunda está orientada a sugerir un conjunto de diez productos, pero en función del producto seleccionado en el instante por el consumidor. Dicho esto, se concluye que para la primera estrategia se requiere del conocimiento del cliente, de sus hábitos de compra y de un entendimiento de la frecuencia de compra de los productos. Mientras que la segunda estrategia solamente necesita que un cliente, así sea nuevo, seleccione un producto para poder sugerir la nueva compra.
De forma complementaria, se ata a la estrategia comercial la segmentación de los clientes a través de un clúster. Así el sistema podrá identificar la categoría a la que pertenece el cliente cuando esté haciendo el ofrecimiento de productos, a través de cualquiera de las dos estrategias anteriores, y se podrá hacer un ofrecimiento atractivo con el fin de que se materialice la sugerencia hecha por el sistema de recomendación. A continuación, se presentan los respectivos flujos para cada una de las estrategias propuestas.
En el flujo 1, el cliente ingresa a la tienda, el sistema de recomendación identifica sus hábitos de consumo y, con base en ese historial, ofrece nuevos productos. Asimismo, según la segmentación del cliente, se realiza una oferta comercial esperando incrementar la tasa de conversión (productos sugeridos/productos comprados).
Figura 5
Flujo 1: cliente habitual llega a la tienda
Nota. De Memoria trabajo final. Máster en Big Data Engineer (p. 36), por C. Cam, G. Hidalgo, C. Huérfano y J. Medina, 2020, Universidad de Barcelona.
En el flujo 2, el cliente no habitual ingresa a la tienda, selecciona uno de los productos disponibles, el sistema de recomendación sugiere, según afinidad al producto escogido, los nuevos productos. Adicionalmente, si el cliente cuenta con atributos suficientes para ser segmentado, se realiza una oferta comercial con el objetivo de incrementar la tasa de conversión (productos sugeridos/productos comprados).
Figura 6
Flujo 2: cliente no habitual llega a la tienda
Nota. De Memoria trabajo final. Máster en Big Data Engineer (p. 37), por C. Cam, G. Hidalgo, C. Huérfano y J. Medina, 2020, Universidad de Barcelona.
Para la construcción del modelo de recomendación, se utilizará la librería LightFM de Python optimizada para la creación de este tipo de sistemas, así como las tablas de productos y tickets.
Aceptación y puesta en producción
Entre los detalles del producto de datos que se entregará al área usuaria, se presenta las siguientes consideraciones:
Igualmente, es recomendable considerar las siguientes perspectivas, como componentes importantes de la mejora continua para futuros proyectos:
RESULTADOS
Primer análisis exploratorio de los datos
Para poder efectuar esta tarea con la muestra inicial de datos, se desarrolló un código en lenguaje de programación Python con la finalidad de realizar el análisis descriptivo de este primer juego de datos. A continuación, se hace una breve descripción de la muestra de datos utilizada.
Tabla 1
Fuentes de datos internos para el primer análisis exploratorio
Nombre de la tabla |
Peso |
Formato |
Número de registros |
Número de campos |
Products |
3,360 KB |
JSON |
7 917 |
17 |
Stores |
84 KB |
JSON |
1 127 |
4 |
Customers_deliver1 |
24 KB |
JSON |
168 |
7 |
Tickets_deliver1 |
9,962 KB |
JSON |
40 693 |
11 |
Nota. De Memoria trabajo final. Máster en Big Data Engineer (p. 17), por C. Cam, G. Hidalgo, C. Huérfano y J. Medina, 2020, Universidad de Barcelona.
La idea de este primer análisis descriptivo de los datos es identificar registros duplicados, registros vacíos y valores atípicos, así como empezar a entender la estructura de datos en cada archivo, en donde podemos resaltar, entre otras, la siguiente información:
Asimismo, de acuerdo con lo analizado, la relación entre las bases de datos se aprecia en la tabla 2.
Tabla 2
Relaciones entre bases de datos
Nombre de la tabla |
Campo de cruce |
Tabla de relación |
Customer |
Customerid |
Tickets, stores |
Stores |
Storeid |
Tickets |
Products |
Productid |
Tickets |
Tickets |
Ticketid |
Products, stores, customer |
Nota. De Memoria trabajo final. Máster en Big Data Engineer (p. 20), por C. Cam, G. Hidalgo, C. Huérfano y J. Medina, 2020, Universidad de Barcelona.
Figura 7
Productos más consumidos por tipo de mercado
Nota. De Memoria trabajo final. Máster en Big Data Engineer (p. 22), por C. Cam, G. Hidalgo, C. Huérfano y J. Medina, 2020, Universidad de Barcelona.
Figura 8
Productos más consumidos por género
Nota. De Memoria trabajo final. Máster en Big Data Engineer (p. 22), por C. Cam, G. Hidalgo, C. Huérfano y J. Medina, 2020, Universidad de Barcelona.
Segundo análisis exploratorio de los datos
En este caso, se utiliza un conjunto de datos mayor que la muestra: los incrementos se han producido en los archivos de clientes y tickets, mientras que las demás tablas permanecen iguales; de ahí la necesidad de construir las arquitecturas de big data en la nube. En la tabla 3, se describe cada una de las tablas utilizadas.
Tabla 3
Fuentes de datos internos para el segundo análisis exploratorio
Nombre de tabla |
Peso |
Formato |
Número de archivos |
Número de registros |
Número de campos |
Products |
3,360 KB |
JSON |
1 |
7 917 |
17 |
Stores |
84 KB |
JSON |
1 |
1 127 |
4 |
Customers |
7,299 KB |
JSON |
1 |
49 998 |
8 |
Tickets |
3,13 GB |
JSON |
20 |
13 238 241 |
11 |
Nota. De Memoria trabajo final. Máster en Big Data Engineer (p. 17), por C. Cam, G. Hidalgo, C. Huérfano y J. Medina, 2020, Universidad de Barcelona.
Para llevar a cabo este segundo análisis descriptivo, se vuelve a utilizar el mismo código de lenguaje de programación en Python (Singh, 2019) del primer análisis. Los principales hallazgos en los archivos customers y tickets son los siguientes:
Asimismo, se debe mencionar que en este segundo análisis descriptivo se mantienen las relaciones entre las bases de datos, tal como se indicó en el primer análisis (véase la tabla 2). Entonces, al realizar el análisis correspondiente de acuerdo con estas relaciones, se observa lo siguiente:
Figura 9
Productos más consumidos por género
Nota. De Memoria trabajo final. Máster en Big Data Engineer (p. 22), por C. Cam, G. Hidalgo, C. Huérfano y J. Medina, 2020, Universidad de Barcelona.
Se observa, al revisar la correlación entre las variables continuas, que las variables monto original y monto extendido (original amount y extended amount) de la tabla de tickets tienen una alta correlación.
Figura 10
Correlación entre variables
Nota. De Memoria trabajo final. Máster en Big Data Engineer (p. 24), por C. Cam, G. Hidalgo, C. Huérfano y J. Medina, 2020, Universidad de Barcelona.
Primera segmentación
A fin de facilitar esta primera aproximación a la segmentación, se excluyeron los registros con valores nulos en la columna edad. Se llevaron a cabo tres iteraciones. En la primera, con todas las variables, se obtuvo superposición de los puntos de varios clústeres, pero no se logró una agrupación limpia; por lo tanto, se desechó esta opción. Para la segunda iteración, se decidió eliminar la edad, pues excluye registros y no contribuye a la clusterización. En este caso, se observa que la superposición ha mejorado; sin embargo, se obtiene una agrupación que no es muy limpia y se puede ver que las variables sintéticas de los grupos de mercancías tampoco aportan al agrupamiento; por lo tanto, también se desecha esta opción. En la tercera iteración, se elimina la variable edad y las variables sintéticas de los grupos de mercancías. En esta oportunidad sí se obtienen seis clústeres claramente definidos con baja superposición (solo en dos grupos) y con los centroides bien ubicados. Por lo tanto, se considera a la tercera opción como el mejor resultado de la segmentación (Cam et al., 2020).
Tabla 4
Resultados de la primera segmentación
Clúster |
Color |
Cantidad |
Antigüedad en días |
Promedio |
Gasto promedio |
Descuento promedio |
0 |
Amarillo |
48 |
601,6 |
74,4 |
119,2 |
3,7 |
1 |
Púrpura |
13 |
725,0 |
135,0 |
246,0 |
5,0 |
2 |
Azul |
51 |
643,6 |
32,0 |
58,1 |
1,3 |
3 |
Naranja |
24 |
245,4 |
40,2 |
71,7 |
2,0 |
4 |
Rojo |
15 |
1 295,1 |
84,2 |
138,9 |
4,7 |
5 |
Verde |
17 |
1 271,5 |
38,8 |
76,0 |
1,7 |
Nota. De Memoria trabajo final. Máster en Big Data Engineer (p. 18), por C. Cam, G. Hidalgo, C. Huérfano y J. Medina, 2020, Universidad de Barcelona.
Figura 11
Representación gráfica de la primera segmentación
Nota. De Memoria trabajo final. Máster en Big Data Engineer (p. 28), por C. Cam, G. Hidalgo, C. Huérfano y J. Medina, 2020, Universidad de Barcelona.
Segunda segmentación
La revisión posterior de los tuits extraídos en tiempo real muestra que no existe información relevante para mejorar la segmentación de clientes y que el flujo de estos es muy bajo. Dada esta situación, se decide capturar los tuits antiguos (es decir, los que figuran “escritos” en la cuenta oficial, ya no en tiempo real). El resultado es igualmente deficiente: no hay información que ayude a mejorar significativamente el modelo de segmentación. Asimismo, se debe mencionar que no se pudo relacionar el código de cliente con el usuario de Twitter.
Ante los resultados obtenidos, se consideran dos alternativas adicionales de fuentes externas. La primera fue la exploración sobre la información nutricional, pero esto no fue posible porque la información nutricional (Nutriscore) no era de directa aplicación sobre la tabla de productos, por lo que esta alternativa se descartó. La segunda alternativa fue utilizar la renta media por hogar por comunidad autónoma; para tal efecto, se consiguió esta información oficial a través del portal web del Instituto Nacional de Estadística (Cam et al., 2020).
A continuación, se mezcla esta información de renta media con los datos del archivo stores.csv, a fin de que cada store id tenga asociada su respectiva renta media por comunidad. Para lograr eso, se tuvo que completar la comunidad autónoma por ciudad/distrito del store id.
Con este nuevo archivo de stores y usando el store id como elemento de conexión, agregamos a cada código de cliente el ratio de compra/renta, que se obtiene al dividir la compra mensual entre la renta media mensual de la comunidad. Esta nueva columna compra/renta se usará como nueva fuente externa a fin de mejorar la segmentación. Los resultados de la segunda segmentación se muestran en la tabla 5.
Tabla 5
Resultados de la segunda segmentación
Clúster |
Color |
Cantidad |
Antigüedad (días) |
Promedio |
Gasto promedio por mes |
Descuento promedio por mes |
Ratio gasto/renta |
0 |
Rojo |
367 |
627,77 |
77,34 |
135,68 |
3,19 |
4 % |
1 |
Verde |
336 |
151,16 |
144,6 |
281,82 |
10,37 |
1 % |
2 |
Azul |
1796 |
131,92 |
51,3 |
99,48 |
2,51 |
3 % |
3 |
Amarillo |
36 |
1 254,16 |
71,48 |
120,33 |
4,25 |
4 % |
4 |
Morado |
639 |
297,7 |
71,69 |
124,74 |
2,51 |
5 % |
Nota. De Memoria trabajo final. Máster en Big Data Engineer, por C. Cam, G. Hidalgo, C. Huérfano y J. Medina, 2020, Universidad de Barcelona.
Con base en estos hallazgos, proponemos los siguientes segmentos de clientes:
Esta segunda segmentación, caracterizada por los hábitos de consumo, tiene como objetivo principal clasificar a los clientes por la gama de productos que consumen, con la finalidad de ejecutar el sistema de recomendación por cada segmento. Así pues, la recomendación estaría atada a la afinidad de consumo del segmento propio sin interactuar con los segmentos adyacentes (Cam et al., 2020).
Sistema de recomendación
Tal como se indicó anteriormente, se definieron dos estrategias. En la primera, el sistema identifica los hábitos de consumo de un cliente y, de acuerdo con ellos, realiza la recomendación. En este caso, se tomó un cliente al azar y se encontró que los diez productos más consumidos y los productos sugeridos fueron los que se observan en la tabla 6.
Tabla 6
Resultados de la primera estrategia del sistema de recomendación
Consumo habitual |
Productos sugeridos |
Aspil Jumpers Mantequilla |
Kinder Joy |
Lacasitos Toy |
Barra de pan |
Burger de pavo/pollo con espinacas |
Plátano canario FP |
Barra de picos |
Escalopines de lomo de cerdo adobado |
Plátano canario 800 g |
Lacasa Paraguas Chocolate surtido |
Albóndigas de ave |
Barra gallega |
Floopy azúcar |
Floopy bombón |
Pulguita |
Puerro |
Pan de la abuela |
Barra premium con masa madre |
Kinder Sorpresa |
Ninguna |
Croissant margarina |
Ninguna |
Nota. De Memoria trabajo final. Máster en Big Data Engineer (p. 39), por C. Cam, G. Hidalgo, C. Huérfano y J. Medina, 2020, Universidad de Barcelona.
En la segunda estrategia, el consumidor escoge un producto y se le recomiendan diez productos afines. Se tomó como ejemplo el código de producto 82620, que corresponde al pimiento rojo, y se obtuvieron las siguientes sugerencias:
Al medir el rendimiento del modelo, se obtuvo una precisión del 90,88 %. La precisión mide la proporción de elementos positivos entre los k elementos mejor clasificados; en este caso, k corresponde a los diez productos recomendados. Como tal, la precisión está centrada en la calidad de la clasificación en la parte superior de la lista, sin considerar qué tan buena o mala sea el resto de su clasificación, siempre que los primeros k elementos sean en su mayoría positivos. Esta métrica es adecuada si solo se va a mostrar a los usuarios la parte superior de la lista (Witten, 2017; Falk, 2019).
Aquí es importante recordar, que, según el segundo análisis descriptivo, solo se ha podido identificar el 27,28 % de los productos que figuran en la tabla de tickets, lo cual refuerza la idea acerca de la relevancia de la integridad y la consistencia de las tablas que intervienen en un proyecto de big data.
CONCLUSIONES
Inicialmente se tenía el objetivo de segmentar clientes según su consumo de productos; sin embargo, esto no fue posible porque era necesario aplicar varias variables sintéticas para completar el análisis y, finalmente, estas no fueron determinantes al momento de clasificar. El sentido común indicaba que debería existir esa segmentación cruzada, pero la realidad de los datos mostró lo contrario; la antigüedad fue la variable dominante en la formación de clústeres.
Esta dificultad permite resaltar la importancia de los análisis descriptivos de datos llevados a cabo antes de la primera y de la segunda segmentación, porque estos dan lugar al proceso de entender las características de los datos no solo desde la mirada estadística, sino, sobre todo, desde el punto de vista del negocio. Asimismo, cabe mencionar que la integridad de las bases de datos es de gran importancia, pues aporta sustancialmente al análisis exploratorio de los datos, así como al desarrollo en la etapa de modelado.
Es de suma utilidad el uso de una metodología de proyectos basada en agilidad, pues aporta flexibilidad y productividad en un entorno de incertidumbre y requisitos cambiantes, en donde hay que conjugar la experimentación con la entrega de resultados que tengan un impacto en el negocio. El trabajo en equipo en los proyectos de big data es fundamental para alcanzar los resultados.
Indudablemente, emplear la infraestructura adecuada para resolver problemas de big data no solo permite tener tiempos de respuesta ideales para la exploración, construcción y análisis de los modelos estadísticos, sino también enriquecer, por medio de fuentes alternativas de datos, todo el trabajo realizado con las fuentes de información tradicionales. No siempre las fuentes externas pueden resultar de utilidad; es necesario explorar fuentes alternativas de valor a fin de mejorar la fase de modelado. Debido a la estructura de las bases de datos, fue muy complicado encontrar una relación, por la baja frecuencia de tuits y su nula conexión con las variables con las que trabajamos.
En la misma línea de pensamiento, cabe resaltar la relevancia de los sistemas de recomendación dentro del mundo del consumo masivo. Su explotación y uso se produce en sectores tan diversos como películas, videos, música, libros, hoteles, restaurantes, etcétera, y se han convertido en una estrategia comercial muy potente y presente en el mundo actual.
REFERENCIAS
Aryuni, M., Didik Madyatmadja, E., & Miranda, E. (2018). Customer segmentation in XYZ Bank using k-means and k-medoids clustering [Presentación de paper]. Proceedings of 2018 International Conference on Information Management and Technology, ICIMTech 2018. Jakarta, Indonesia. https://doi.org/10.1109/ICIMTech.2018.8528086
Cam, C., Hidalgo, G., Huérfano, C., & Medina, J. (2020). Memoria trabajo final. Máster en Big Data Engineer. Universidad de Barcelona.
Chen, D., Sain, S. L., & Guo, K. (2012). Data mining for the online retail industry: a case study of RFM model-based customer segmentation using data mining. Journal of Database Marketing & Customer Strategy Management, 19(3), 197-208. https://doi.org/10.1057/dbm.2012.17
Chen, H., Chiang, R. H. L., & Storey, V. C. (2012). Business intelligence and analytics: from big data to big impact. MIS Quarterly, 36(4), 1165-1188. https://doi.org/10.2307/41703503
Christodoulou, P., Christodoulou, K., & Andreou, A. S. (2017). A real-time targeted recommender system for supermarkets. En Proceedings of the 19th International Conference on Enterprise Information Systems. Volumen 2: ICEIS 2017 (pp. 703-712). https://doi.org/10.5220/0006309907030712
Doğan, O., Ayçin, E., & Bulut, Z. A. (2018). Customer segmentation by using RFM model and clustering methods: a case study in retail industry. International Journal of Contemporary Economics and Administrative Sciences, 8(1), 1-19. http://www.ijceas.com/index.php/ijceas/article/view/174
Falk, K. (2019). Practical recommender systems. Manning.
Fang, Y., Xiao, X., Wang, X., & Lan, H. (2018). Customized bundle recommendation by association rules of product categories for online supermarkets. En 2018 IEEE Third International Conference on Data Science in Cyberspace (DSC) (pp. 472-475). https://doi.org/10.1109/DSC.2018.00076
Gulabani, S. (2017). Practical Amazon EC2, SQS, Kinesis, and S3: A hands-on to AWS. Apress. https://doi.org/10.1007/978-1-4842-2841-8
Kansal, T., Bahuguna, S., Singh, V., & Choudhury, T. (2018). Customer segmentation using k-means clustering. En Proceedings of the International Conference on Computational Techniques, Electronics and Mechanical Systems, CTEMS 2018 (pp. 135-139). https://doi.org/10.1109/CTEMS.2018.8769171
Kumar, V., & Reinartz, W. (2018). Customer relationship management: concept, strategy, and tools (3.a ed.). Springer. https://doi.org/10.1108/IJBM-11-2014-0160
Lycett, M. (2013). “Datafication”: making sense of (big) data in a complex world. European Journal of Information Systems, 22(4), 381-386. https://doi.org/10.1057/ejis.2013.10
Microsoft. (2021, 11 de diciembre). What is team data science process? https://docs.microsoft.com/en-us/azure/architecture/data-science-process/overview
Pascal, C., Ozuomba, S., & Kalu, C. (2015). Application of k-means algorithm for efficient customer segmentation: a strategy for targeted customer services. International Journal of Advanced Research in Artificial Intelligence, 4(10), 40-44. https://doi.org/10.14569/ijarai.2015.041007
Pérez, C. (2013). Análisis multivariante de datos. Aplicaciones con IBM SPSS, SAS y STATGRAPHICS (1.a ed.). Garceta.
Schermann, M., Hemsen, H., Buchmüller, C., Bitter, T., Krcmar, H., Markl, V., & Hoeren, T. (2014). An interdisciplinary opportunity for information systems research. Business and Information Systems Engineering, 6(5), 261-266. https://doi.org/10.1007/s12599-014-0345-1
Singh, P. (2019). Machine learning with PySpark. Apress. https://doi.org/10.1007/978-1-4842-4131-8
Witten, I. H., Eibe, F., & Hall, M. A. (2017). Data mining: practical machine learning tools and techniques. Morgan Kaufmann.