Segmentación de Clientes con Pyspark

En este artículo hablaré un poco de segmentación de cliente usando un método clásico RFM y la creación de una, usando Spark desde un set de datos de kaggle

Jonathan Quiza
Ciencia y Datos
6 min readJun 28, 2018

--

¿Qué es la segmentación de RFM?

La segmentación de RFM permite a los especialistas en marketing enfocarse en grupos específicos de clientes con comunicaciones que son mucho más relevantes para su comportamiento particular y, por lo tanto, generan tasas de respuesta mucho más altas, además de una mayor lealtad y valor de vida del cliente . Al igual que otros métodos de segmentación, la segmentación RFM es una forma poderosa de identificar grupos de clientes para un tratamiento especial.
RFM significa recencia, frecuencia y dinero: más sobre cada uno de estos en breve.

Los especialistas en marketing suelen tener datos exhaustivos sobre sus clientes actuales, como historial de compras, historial de navegación, patrones de respuesta de campañas anteriores y datos demográficos, que pueden utilizarse para identificar grupos específicos de clientes que pueden abordarse con ofertas muy relevantes para cada uno.

Si bien existen innumerables formas de realizar la segmentación, el análisis de RFM es popular por tres razones:

  • Utiliza escalas numéricas objetivas que producen una descripción concisa e informativa de alto nivel de los clientes.
  • Es simple: los profesionales de marketing pueden usarlo de manera efectiva sin la necesidad de científicos de datos o software sofisticado.
  • Es intuitivo: el resultado de este método de segmentación es fácil de entender e interpretar.

¿Qué son la actualidad, la frecuencia y el dinero?

  • Recencia : ¿Cuánto tiempo ha transcurrido desde la última actividad o transacción del cliente con la marca? La actividad suele ser una compra, aunque a veces se usan variaciones, por ejemplo, la última visita a un sitio web o el uso de una aplicación móvil. En la mayoría de los casos, cuanto más recientemente un cliente ha inter-actuado o ha realizado transacciones con una marca, es más probable que el cliente responda a las comunicaciones de la marca.
  • Frecuencia : ¿con qué frecuencia un cliente ha negociado o interactuado con la marca durante un período de tiempo particular? Claramente, los clientes con actividades frecuentes están más comprometidos, y probablemente más leales, que los clientes que rara vez lo hacen. Y los clientes que solo son únicos son una clase propia.
  • Monetario : también conocido como “valor monetario”, este factor refleja cuánto ha gastado un cliente con la marca durante un período de tiempo determinado. Grandes derrochadores generalmente deben ser tratados de manera diferente que los clientes que gastan poco. Si se analiza el valor monetario dividido por frecuencia, se indica el monto promedio de la compra, un factor secundario importante a tener en cuenta al segmentar a los clientes.

¿Qué grupos encontramos?

  • Mejores clientes
  • Nuevos clientes de alto gasto
  • Clientes leales activos de menor gasto
  • Los mejores clientes batidos

¿Advertencia sobre RFM?

La segmentación de RFM es un método directo y poderoso para la segmentación de clientes.
Sin embargo, el hecho de que el modelo de RFM solo considere tres factores específicos (aunque importantes) significa que el método puede estar excluyendo otras variables que son igual o más importantes (por ejemplo, productos comprados, respuestas de campaña anteriores, detalles demográficos).

Además, el marketing de RFM es, por su propia naturaleza, un método histórico, analiza el comportamiento del cliente anterior que puede o no indicar con exactitud actividades, preferencias y respuestas futuras .

¿Mejores Técnicas?

Las técnicas de segmentación de clientes más avanzadas se basan en tecnologías de análisis predictivo que tienden a ser mucho más precisas para predecir el comportamiento futuro de los clientes.

Demostración con Spark jugando en kaggle

ruta del desafió

Lo puede ver aquí

importar librerias

Creando una sesion en spark

Leyendo csv o desde una base de datos

Validación de los esquemas

importar librerias

Remover orden que tengo un monto cero

Remover no tiene un cliente asociado

Filtro mayores o iguales a fecha de inicio

Máxima Fecha

Fecha según kaggle a tomar por el rango

Monto total y convertimos la variable InvoiceDate en fecha

Calculamos la recencia

Eliminamos duplicados y Calculamos la frecuencia

Calculamos el monto

Union de dataframe

Metodo de Quantiles en Spark

Porcentaje quartil recencia

Porcentaje quartil frecuencia

Porcentaje quartil monto

Funcionn UDF para RFMscore

Dataset terminado

Otro método, se pudo usar Kmeans y probar algoritmos supervisados

en vez que hacer quantiles con kmeans podemos buscar grupos asociados pero resultaría casi lo mismo , pero igual ya queda a gusto de cada persona como desea presentar la informacion , este ejemplo fácil les puede ayudar a segmentar aunque no es tanto una buena forma para nuevo clientes, pero ayuda en cierta manera.

Libro para estudio

fuente(https://amzn.to/2xQdGaV)

Espero le hayas gustado esta publicación sobre segmentación de clientes con Spark ya comenzare con unas aplicaciones usando Tensorflow.

linkedin:

Gracias

--

--

Jonathan Quiza
Ciencia y Datos

Lead ML Engineer / Data science / Machine Learning / MLops