Caso de uso · Elastic · Proyecto Final ESADE

Predictor de Churn
Elastic

Anticipar y reducir la fuga de clientes en Elastic · prototipo entrenado con el dataset público Cell2Cell

Equipo · Julia Masvidal · Manuel Rivero · Rodrigo Careaga

Un modelo de churn no se optimiza por accuracy, se optimiza por DINERO. El proyecto recorre el ML Lifecycle completo y culmina en una curva de coste que fija el punto de operación.

5 modelos comparados Cost-sensitive · umbral óptimo Sin data leakage 20.000 clientes puntuados
28,8%
Tasa de churn (dataset Cell2Cell)
1,33x
ROI de la campaña de retención
€53.370
Ahorro del modelo vs. no actuar
7.948
Clientes priorizados para retención

Cifras del experimento sobre el dataset público Cell2Cell, no de datos reales de Elastic.

01 · El problema

Retener la base instalada es barato. Pero no puedes contactar a todas las cuentas.

En Elastic — software de búsqueda, observabilidad y seguridad, con negocio de suscripción — el churn (la no-renovación de suscripciones) es uno de los problemas más graves: retener la base instalada gobierna el crecimiento (Net Revenue Retention). El presupuesto de retención es limitado, así que la pregunta no es técnica, es de negocio: ¿a qué cuentas en riesgo contactar para maximizar el ROI de retención?

%

Fuga masiva

En el dataset de entrenamiento Cell2Cell la tasa de churn es del 28,8%. En un negocio de suscripción, cada cuenta perdida es ARR que se evapora y coste de readquisición para reemplazarla.

Presupuesto limitado

La retención tiene un coste por contacto y una bolsa acotada. Ofrecer un descuento a toda la base es derroche: se regala margen a quien nunca se iba a ir.

?

La pregunta real

¿A quién contactar para maximizar el ROI de retención? Ese es el objetivo que gobierna todo el proyecto — no la métrica de moda.

02 · Los datos

Cell2Cell: 51.047 etiquetados, 20.000 por puntuar

Dataset público del sector telco (Cell2Cell), usado aquí como set de entrenamiento y validación. El split es estratificado para preservar la tasa de fuga, y toda la preparación se ajusta solo en train para evitar cualquier fuga de información.

51.047

Clientes etiquetados para entrenamiento
(cell2celltrain.csv · 58 columnas originales)

20.000

Clientes sin etiqueta de holdout
(cell2cellholdout.csv · el entregable)

Split estratificado 80/20 → train 40.837 / test 10.210, manteniendo el churn al 28,8% en ambos conjuntos.

Tras la preparación, 70 variables entran al modelo: 69 numéricas más codificación one-hot y frequency encoding. La imputación y el encoding se aprenden únicamente con los datos de entrenamiento mediante Pipeline + ColumnTransformer de scikit-learn.

Distribución de churn: 36.336 clientes se quedan frente a 14.711 que se fugan, una tasa del 28,8%.
Distribución de churn. La base está desbalanceada: el 28,8% se fuga. Este desbalance se gestionará moviendo el umbral de decisión, no reponderando clases.
03 · Metodología

El ML Lifecycle completo, en cinco pasos

El grueso del valor no está en el algoritmo, sino en la disciplina de datos que lo precede. Cerca del 80% del esfuerzo vive en la preparación.

PASO 1

Data Preparation

Limpieza determinista sin data leakage. Imputación y encoding se ajustan solo en train con Pipeline + ColumnTransformer.

~80% del esfuerzo
PASO 2

Feature Engineering

14 variables de negocio: ratios de comportamiento, tendencias y flags que capturan por qué un cliente se enfría.

6 de las 10 top
PASO 3

Modeling

5 modelos comparados en igualdad de condiciones, desde Naive Bayes hasta un FT-Transformer de deep learning.

5 modelos
PASO 4

Evaluation

Métricas técnicas, curvas ROC e importancia de variables para entender la capacidad de discriminación real.

ROC · importancia
PASO 5

Business Case

Curva de coste → umbral óptimo → ROI. Aquí el modelo se traduce en euros y en una lista accionable.

Coste → ROI
04 · Feature Engineering

14 variables de negocio — y 6 de las 10 más importantes nacieron aquí

No basta con las columnas del CRM. Traducir el comportamiento del cliente en señales de negocio (calidad, bill shock, tendencia, fricción, valor y equipo) es lo que dispara la señal predictiva.

Calidad de red

DroppedCallRate, QualityIssueRate — un servicio que falla empuja al cliente a la puerta.

Bill shock

OverageRatio, RevenuePerMinute — pagar de más por lo mismo enciende la fuga.

Tendencia (se enfría)

DecliningUsage, PercChangeMinutes — el consumo que cae anticipa la baja.

Fricción / soporte

CareCallsPerMonth — llamar mucho a atención al cliente es una señal de hartazgo.

Valor y antigüedad

TenureValueToDate, RevenuePerActiveSub, IsNewCustomer — cuánto vale y cuánto lleva.

Equipo

HandsetAgeYears, HandsetsPerMonth — un terminal viejo es motivo clásico de cambio.

Importancia de variables del Random Forest: CurrentEquipmentDays, HandsetAgeYears, PercChangeMinutes y MonthsInService encabezan la lista.
Importancia de variables (Random Forest). Lo que realmente impulsa el churn: antigüedad del equipo, tendencia de consumo, valor y calidad de red.

Top 10 variables por importancia

  1. 1CurrentEquipmentDaysOriginal
  2. 2HandsetAgeYearsCreada
  3. 3PercChangeMinutesOriginal
  4. 4MonthsInServiceOriginal
  5. 5RevenuePerMinuteCreada
  6. 6MonthlyMinutesOriginal
  7. 7TenureValueToDateCreada
  8. 8DroppedCallRateCreada
  9. 9RevenuePerActiveSubCreada
  10. 10HandsetsPerMonthCreada

6 de las 10 variables más predictivas fueron diseñadas en feature engineering. El valor de negocio se construye, no viene dado en el CSV.

Cómo se traslada a Elastic — mapeo hipotético de señales

Las mismas familias de señales de comportamiento existen en un negocio de suscripción. La lógica del feature engineering es idéntica; solo cambia el origen del dato.

Señal en Cell2Cell (telco)Equivalente hipotético en Elastic (SaaS de suscripción)
Uso decreciente de minutosCaída en datos ingeridos, consultas o logins (leading indicator)
Llamadas caídas / calidad de redIncidentes, latencia o errores del servicio
Llamadas a soporteVolumen y severidad de tickets de soporte
Antigüedad del terminalAntigüedad/versión del despliegue, adopción de features
ARPU / valor por suscriptorARR por cuenta, expansión de asientos
Mapa de calor de correlación de las principales variables con el churn.
Correlación de las variables con el churn. Vista exploratoria de cómo se relacionan las señales más relevantes entre sí y con la fuga. Ninguna variable explica el churn por sí sola: la capacidad predictiva emerge de combinar muchas señales débiles — justo lo que persiguen el feature engineering y los modelos de ensamblado.
05 · Los 5 modelos

Leaderboard ordenado por lo único que importa: el coste

No ganamos por ROC-AUC, ganamos por coste mínimo — el objetivo de negocio real. Cada modelo se evalúa a su propio umbral óptimo.

Modelo ROC-AUC Umbral ópt. Recall Precision F1 Coste mín. Ahorro
1Gradient BoostingGanador 0,6770,310,580,420,485 €1.192.791€53.370
2Random Forest 0,6680,320,550,420,47 €1.196.498€49.663
3Red Neuronal (MLP) 0,6270,300,600,370,46 €1.212.997€33.163
4FT-Transformer (deep learning) 0,6150,320,500,370,43 €1.215.937€30.223
5Naive Bayes 0,5980,470,470,380,42 €1.216.087€30.073
Comparativa de métricas técnicas de los cinco modelos.
Métricas técnicas. Precision, recall y F1 de cada modelo a su umbral óptimo.
Curvas ROC de los cinco modelos mostrando su capacidad de discriminación.
Curvas ROC. Capacidad de discriminación. Gradient Boosting y Random Forest lideran la separación de clases.
06 · El giro clave

La curva de coste fija el punto de operación

Este es el corazón del proyecto. El umbral no es 0,50 por defecto: es 0,31, el punto que minimiza el coste total esperado. Moverlo transforma el negocio.

Curva de coste: el mínimo está en el umbral 0,31 (óptimo de negocio), muy por debajo del umbral ingenuo 0,50.
Punto de operación óptimo = minimizar coste, no maximizar accuracy. El óptimo de negocio (0,31) coincide casi exactamente con el break-even teórico (0,315). El umbral ingenuo de 0,50 deja dinero sobre la mesa.
0,31

Umbral de operación óptimo, frente al 0,50 por defecto. El break-even teórico (0,315) lo confirma.

12% → 58%

Recall de churn. Al bajar el umbral, el modelo pasa de detectar 1 de cada 8 fugas a casi 6 de cada 10.

Cost-sensitive

El desbalance no se corrige reponderando clases, sino moviendo el umbral donde el euro lo pide.

07 · Caso de negocio

Tres políticas, un ganador claro

Comparamos el coste total sobre el test de 10.210 clientes. No hacer nada pierde churners; el descuento a todos derrocha margen; el modelo, en su umbral óptimo, gana.

No hacer nada
€1.246.161
Se asume la pérdida de todos los churners. El coste de oportunidad de no actuar.
Referencia
Descuento a todos
€1.280.712
Oferta indiscriminada (blanket). El más caro: se regala margen a quien no se iba a ir.
Derroche
Modelo @ umbral 0,31
€1.192.791
Se contacta solo a quien el modelo prioriza. Coste total mínimo entre las tres políticas.
Mínimo
€53.370

Ahorro vs. no actuar

€87.921

Ahorro vs. descuento a todos

€32.306

Ahorro vs. umbral ingenuo 0,5

Inversión de campaña
€162.400
Valor rescatado
€215.770
ROI de retención
1,33x

Supuestos económicos (editables por el comité)

€40
Coste de un Falso Positivo — oferta a quien no se iba.
€424
Coste de un Falso Negativo — LTV en margen perdido (ARPU €58,83 × 18 meses × margen 40%).
30%
Tasa de éxito de la oferta de retención — evita el óptimo degenerado de "llamar a todos".

Al punto óptimo se marcan 4.060 de 10.210 clientes del test. El cuadrante caro es el Falso Negativo: churners que no vimos venir.

Matriz de confusión al umbral óptimo

Predicho: Se queda
Predicho: Churn
Real: Se queda
4.906Verdadero negativo
2.362Falso positivo · derroche
Real: Churn
1.244Falso negativo · caro
1.698Verdadero positivo
Matrices de confusión de los modelos al punto óptimo; el cuadrante caro es el falso negativo.
Matrices al punto óptimo. El cuadrante costoso es el falso negativo: el churner que se escapa.
Coste total por política de retención: no hacer nada, descuento a todos y modelo al umbral óptimo.
Coste por política de retención. El modelo al umbral óptimo es la barra más baja: menos coste total que no actuar y que el descuento indiscriminado.
08 · La trampa de la accuracy

Un 71% de accuracy puede valer cero euros

Con un churn del 28,8%, un modelo que prediga "nadie se va" acierta el 71,2% de las veces — y no captura ni un solo churner. La accuracy engaña cuando las clases están desbalanceadas.

La trampa de la accuracy: alta accuracy con recall casi nulo no rescata clientes.
La trampa de la accuracy. Optimizar accuracy premia predecir la clase mayoritaria y penaliza detectar la fuga, que es justo lo que genera valor.

Alta accuracy, recall casi nulo

Al umbral 0,50 el Gradient Boosting parece "preciso", pero solo detecta el 12% de los churners. En euros, deja casi toda la fuga sin atender.

El negocio pide recall, no accuracy

Bajando el umbral a 0,31 el recall sube al 58%. Se sacrifica algo de accuracy, pero se rescata el margen que la accuracy ignoraba. Por eso el objetivo es el coste.

09 · Priorización

El top 30% de la base captura el 46% de las fugas

Ordenando a los clientes por su probabilidad de churn, la campaña concentra el esfuerzo donde más rinde. Con un tercio de los contactos se cubre casi la mitad de los churners.

30%

de la base contactada (ordenada por el modelo)

46%

de todos los churners capturados

La curva de ganancia acumulada demuestra que el modelo concentra la señal: prioriza a los clientes de mayor riesgo, permitiendo al equipo de retención gastar el presupuesto donde de verdad evita fugas.

Es la traducción operativa del modelo: una cola priorizada por la que ir bajando hasta agotar el presupuesto disponible.

Curva de ganancia acumulada: el top 30% de la base priorizada captura el 46% de los churners.
Curva de ganancia acumulada. Cuanto más se despega de la diagonal, mejor prioriza el modelo. El top 30% ya recoge el 46% de las fugas.
10 · El entregable

Una lista de retención accionable

El modelo ganador puntúa el holdout de 20.000 clientes sin etiqueta y devuelve exactamente a quién llamar. No es un informe: es una cola de trabajo para el equipo de retención.

20.000
Clientes puntuados del holdout, cada uno con su probabilidad de churn calibrada.
7.948
Clientes priorizados para retención — el 39,7% de la base, los que superan el umbral óptimo.

De la probabilidad a la acción: el equipo recorre los 7.948 priorizados de mayor a menor riesgo, activando ofertas de retención hasta agotar el presupuesto — con un ROI esperado de 1,33x.

Cifras del experimento sobre el dataset público Cell2Cell, no de datos reales de Elastic.

11 · Rigor metodológico

Cinco decisiones que sostienen los números

Un buen resultado sin método correcto no es fiable. Estas decisiones garantizan que las cifras son honestas y reproducibles.

1

Probabilidades calibradas, no reponderadas

Sin class_weight='balanced': la media de probabilidad (0,29) coincide con la tasa real (0,288). El desbalance se gestiona moviendo el umbral (cost-sensitive), no distorsionando las clases.

2

LTV en margen, no en ingreso bruto

El coste del falso negativo se calcula sobre el margen de contribución, porque solo el margen es beneficio realmente perdido — no la facturación completa.

3

Modelo de coste realista

La oferta cuesta también cuando el cliente es churner real y solo funciona ~30% de las veces. Eso evita el óptimo degenerado de "llamar a todo el mundo".

4

Sin data leakage

Imputación y encoding se ajustan solo en train con Pipeline + ColumnTransformer. El test nunca contamina el aprendizaje.

5

Encoding con criterio

ServiceArea (747 categorías) se resuelve con frequency encoding, no con un label-encoding arbitrario que inventaría un orden inexistente.

+

Sensibilidad del umbral

El óptimo se estresa frente a los supuestos económicos: el punto de operación es robusto ante cambios razonables en los costes de FP/FN.

Análisis de sensibilidad del umbral óptimo frente a los supuestos económicos.
Sensibilidad del umbral óptimo. Cómo se desplaza el punto de operación al variar los supuestos de coste — el comité puede recalibrar y la lógica se mantiene.