top of page

👩🏾Modelo de Propension de Compra del Cliente en Python

⭐ Tipo

Machine Learning

Mi proyecto:

🟪El modelo de propensión es un conjunto de enfoques para construir modelos predictivos que pronostican el comportamiento de un público objetivo mediante el análisis de sus comportamientos pasados.

🟪Es decir, los modelos de propensión ayudan a identificar la probabilidad de que alguien realice una determinada acción. Luego podemos utilizar esta probabilidad o puntuación de probabilidad para crear campañas de segmentación personalizadas para los usuarios, reduciendo así el costo total de un negocio (dirigiéndose solo a un pequeño conjunto de usuarios) y aumentando el retorno de la inversión (ROI).

🟪Proyecto: El cliente es una empresa de comercio electrónico en etapa inicial que vende diversos productos, desde artículos de primera necesidad (como productos lácteos y verduras) hasta productos electrónicos de alta gama y electrodomésticos para el hogar.

🟪La empresa tiene un año de antigüedad y observa que muchas personas visitan su plataforma y buscan productos, pero solo unas pocas finalizan una compra.

🟪Para aumentar el número de compras, la empresa planea renovar sus procesos comerciales enviando descuentos o cupones a los usuarios para motivarlos a comprar.

🟪Sin embargo, dado que es una startup en sus primeras etapas, cuentan con fondos limitados para esta campaña de descuentos. Por lo tanto, se han puesto en contacto conmigo en busca de ayuda para construir un modelo de análisis predictivo que pueda predecir la probabilidad de compra de cada usuario al adquirir un producto. Utilizaré el modelo de propensión de compra para lograr esto.

Resumen Ejecutivo

He Creado un modelo de Machine Learning que está construido sobre disparadores, o sea, cuando un cliente completa una acción prevista el modelo se activa y luego cualificará a cada usuario por su propensión a realizar una compra.

El primer paso es identificar la acción desencadenante (“Trigger”) que en este caso será “add to cart the producto”.

 

Los diferentes paths que un user puede hacer en una web:


1.            Product – Buy (compra directa)

2.            Product – add to wishlist – Buy

3.            Product -   add to wishlist – add to cart – Buy

4.            Product – add to cart – Buy

 

Tenemos que conocer los diferentes comportamientos de los users para poder elegir cual es mejor path para eso tenemos que estudiar cual es la distribución de los clientes.

 

El modelo tendrá que responder cual es la probabilidad de un user comprar un producto en los próximos 120 minutos después de añadir un producto al carrito.

 

 

Para realizar el análisis RFM, necesitamos crear 3 características a partir de los datos:

 

Recency - [Última fecha - Última fecha de factura] (Número de días desde la última fecha de compra)


Frequency - recuento de números de factura. (Número total de transacciones realizadas por un único cliente)


Monetary - Suma de las ventas totales. (Valor total de las ventas realizadas por cada cliente)


 

Para realizar el análisis RFM, necesitamos clasificar a los clientes en función de cada atributo RFM por separado.

 

Supongamos que clasificamos a estos clientes del 1 al 4 utilizando los valores RFM. (1-puntuación baja & 4-puntuación alta)

 

He logrado agrupado con éxito 62 segmentos basados en puntuaciones individuales R, F, M en 4 amplios niveles de fidelización. Exploremos las características de cada nivel de fidelización.


Exploremos las características de cada nivel de fidelización.


Comportamiento de los clientes y posibles técnicas de segmentación para cada nivel de fidelización:

 

1.      Platinum:

Son sus clientes más fieles, los que han comprado más recientemente, con más frecuencia y los que más gastan. Se debería recompensar a estos clientes para que se conviertan en los primeros en adoptar sus futuros productos y le ayuden a promocionar su marca.


2.      Gold:

Estos son sus clientes recientes con una frecuencia media y que gastaron una buena cantidad. Se puede ofrecer a estos clientes programas de afiliación o fidelidad o recomiéndales productos relacionados para hacerles upsell y ayudarles a convertirse en tus miembros Platinum.


3.      Silver:

Se trata de clientes que han comprado un buen número de veces y han gastado una buena cantidad, pero que no han comprado recientemente. La tienda puede enviarles campañas personalizadas, ofertas y recomendaciones de productos ayudará a reconectar con ellos.


4.      Bronze:

Se trata de clientes que solían visitar y comprar en su plataforma, pero que no lo han hecho últimamente. Habrá que hacer algo para que vuelvan por ejemplo, con promociones relevantes y realizar encuestas para averiguar qué ha fallado el Ecommerce y evitar perderlos a manos de un competidor.

 

He aplicado un Modelo de Regresión Logística y con un un Roc_AUC de 1.

 

Con la implementación de este modelo, ¿Qué logrará hacer?

 

Cuando un usuario visite la página web y agregue un producto al carrito, el modelo capturará su identificación de usuario (user_id) y las características necesarias. Luego, el modelo asignará a cada user_id una puntuación de probabilidad (probability_score).

 

El modelo nos proporcionará la probability_score, que representa la propensión de un usuario a comprar un producto en las próximas dos horas.

 

Ejemplo:

 

User_id                             propensity_score

X                                            0.5

Z                                            0.7

Y                                            0.3

 

No se realizará ningún esfuerzo financiero, para incentivar al cliente Z a convertir, ya que se considera altamente probable que realice una compra sin necesidad de estímulos adicionales.


A los clientes X & Y para incentivarlos a la compra se podrían aplicar algunas estrategias como:

 

💠Enviar correos electrónicos automatizados recordando al cliente que dejó productos en su carrito y ofreciéndole incentivos adicionales, como descuentos exclusivos, envío gratuito o regalos adicionales con la compra.

 

💠Ofertas de tiempo limitado: Crear una sensación de urgencia al ofrecer ofertas de tiempo limitado, como "Oferta válida solo por 24 horas" o "Descuento adicional solo hasta el fin de semana". Esto puede impulsar al cliente a actuar rápidamente y completar la compra.

 

💠Programa de lealtad: Implementar un programa de lealtad que recompense a los clientes por completar la compra, como puntos acumulativos, descuentos exclusivos para futuras compras o regalos adicionales.

 

💠Utilizar anuncios en línea para mostrar al cliente anuncios personalizados de los productos que dejó en el carrito en otros sitios web que visite. Esto ayuda a mantener la marca y los productos en la mente del cliente, recordándole que aún tiene artículos pendientes en su carrito.

 

Trabajo Realizado

Importación de Datos


data = pd.read_excel('C:/Users/Renata Lima/python/Casos_ML/Build Customer to Purchase Model in Python/data/final_customer_data.xlsx')
data.head()

Calidad de Datos


data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2090 entries, 0 to 2089
Data columns (total 9 columns):
 #   Column       Non-Null Count  Dtype         
---  ------       --------------  -----         
 0   User_id      2090 non-null   int64         
 1   Session_id   2090 non-null   object        
 2   DateTime     2090 non-null   datetime64[ns]
 3   Category     2090 non-null   object        
 4   SubCategory  2090 non-null   object        
 5   Action       2090 non-null   object        
 6   Quantity     201 non-null    float64       
 7   Rate         201 non-null    float64       
 8   Total Price  201 non-null    float64       
dtypes: datetime64[ns](1), float64(3), int64(1), object(4)
memory usage: 147.1+ KB

Transformación de Variables


data['DateTime'] = pd.to_datetime(data['DateTime'])

Modelización


X = final_df.drop(['Target'],axis=1)
Y = final_df[['Target']]
x_train, x_test, y_train, y_test = train_test_split(X,Y,test_size=0.3)
print((x_train.shape,y_train.shape), (x_test.shape,y_test.shape))
# Baseline model
logreg = LogisticRegression(class_weight='balanced',random_state=123)
logreg.fit(x_train,y_train)

.EvaluaciónImplantación

preds_label = logreg.predict(x_test)
print(preds_label)
print("Test Accuracy:" + str(metrics.accuracy_score(y_test,preds_label)))
[1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 0. 0. 0. 1. 1. 1. 1. 1. 1. 0. 1. 1. 0. 1.
 0. 1. 0. 1. 0. 0. 0. 1. 0. 0. 1. 1. 1. 0. 1. 0. 1. 0. 0. 0. 1. 0. 0. 1.
 0. 1. 0. 1. 1. 0. 1. 0. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 0. 0. 0.]
Test Accuracy:1.0

 

Beneficios Esperados:

Mayor eficiencia en el gasto de marketing.

Aumento de las tasas de conversión.

Segmentación precisa de usuarios.

Incremento en los ingresos.

 

Recursos Requeridos:

Datos históricos de clientes y transacciones.

Expertos en análisis de datos y modelado.

Herramientas de software para análisis de datos.

 

 


Plan de Implementación:

Recopilación y preparación de datos históricos.

Desarrollo y entrenamiento del modelo de propensión de compra.

Integración del modelo en las estrategias de marketing existentes.

Seguimiento y ajuste continuo del modelo en función de los resultados obtenidos.

 

 

Conclusión:

La implementación de un modelo de propensión de compra del cliente es una estrategia clave para mejorar la eficiencia de marketing y aumentar los ingresos. Este proyecto tiene el potencial de brindar un ROI significativo y fortalecer la posición competitiva de nuestro cliente en el mercado de comercio electrónico.

bottom of page