Saltar al contenido

lección 1

Bienvenida a FibraNova

Tu primer día: la empresa, el encargo, y convertir «¿quién se va a ir?» en un problema de clasificación con target y features.

⏱ 50 min

## Lunes, 9:15. Tu primer día

Llevas veinte minutos con el portátil nuevo abierto y todavía no has entrenado un solo modelo. Es normal: es tu primer día como científico de datos en FibraNova, y ahora mismo lo único que tienes es un usuario de Slack, acceso a una carpeta compartida llena de ficheros con nombres que no conoces, y un café que se está enfriando. Esta lección no lleva una sola línea de código, y es a propósito. Antes de predecir nada, un buen científico de datos entiende dónde ha aterrizado: quién le pide las cosas, para qué, y qué decisión se va a tomar con su respuesta. Ese es el trabajo de verdad; el modelo es el final de un camino largo, no el principio.

FibraNova es una operadora de telecomunicaciones: vende fibra para casa, líneas de móvil y paquetes que juntan las dos cosas. Nació en Sevilla en 2015 como una alternativa más barata y más cercana que las grandes operadoras, empezó revendiendo la red de un tercero y hoy tiene red propia de fibra en buena parte de Andalucía. En diez años ha pasado de un puñado de personas a unos 900 empleados y casi medio millón de clientes, con una facturación de alrededor de 210 millones de euros al año. Su negocio es de los que se llaman «de suscripción»: el cliente no compra una vez y se va, paga una cuota todos los meses, y mientras siga pagando es un cliente. Eso cambia por completo cuál es la pregunta más importante del negocio. En una tienda, la pregunta es «¿cómo vendo más?». En una operadora pesa todavía más otra: «¿cómo evito que se vayan los que ya tengo?».

A que un cliente se dé de baja se le llama, en la jerga del sector, «churn» (se pronuncia «chern», y en español se traduce como «fuga» o «abandono» de clientes). Es la palabra que más vas a oír esta semana, así que vale la pena entenderla bien. Cada mes, un porcentaje de los clientes de FibraNova se marcha: unos se cambian a la competencia, otros se mudan, otros simplemente dejan de pagar. En el sector de las telco ese porcentaje ronda el 2% mensual, que suena pequeño hasta que haces la cuenta: un 2% mensual sobre casi medio millón de clientes son entre 9.000 y 10.000 bajas cada mes, y captar un cliente nuevo cuesta alrededor de cinco veces más que retener a uno que ya tienes. Por eso predecir quién está a punto de irse —y hacer algo antes de que se vaya— es una de las cosas más rentables que puede hacer un equipo de datos en una empresa así.

Un poco de historia para situar dónde has aterrizado. Durante décadas, las operadoras no se preocupaban demasiado por la fuga: había pocas, los contratos ataban al cliente dos años con penalización, y cambiarse de compañía era un lío de papeleo. Eso se acabó. La portabilidad (poder llevarte tu número de una operadora a otra en un día), la desaparición de las permanencias eternas y los comparadores en internet convirtieron cambiar de compañía en algo que se hace desde el sofá en diez minutos. De repente, retener dejó de ser automático y pasó a ser un trabajo. Y como las operadoras guardan un rastro enorme de cada cliente —cuánto consume, cuánto paga, cuántas veces llama a soporte—, retener se volvió un problema de datos. Ese hueco, montañas de datos de clientes y la urgencia de adivinar quién se va, es exactamente el motivo por el que existe el puesto que acabas de ocupar.

Para que entiendas por qué una baja duele tanto en un negocio como este, conviene hacer la cuenta despacio, porque la aritmética de la suscripción no es intuitiva. Un cliente de FibraNova no vale lo que paga este mes: vale lo que va a pagar mientras siga. A esa cifra —cuánto deja un cliente a lo largo de toda su vida como cliente— se le llama el valor de vida del cliente, y es la brújula de cualquier negocio de cuota. Un cliente de paquete de fibra y móvil que paga 60 euros al mes y se queda tres años deja más de 2.000 euros. Si se marcha al sexto mes, deja 360. La diferencia entre esas dos cifras no está en lo que vendes: está en cuánto consigues que se quede. Por eso, en una operadora, un punto de fuga mensual pesa en la cuenta de resultados más que casi cualquier campaña de captación.

Y ahora la otra mitad de la cuenta, la que explica tu encargo. Captar un cliente nuevo cuesta dinero: anuncios, comisiones al comercial, la instalación de la fibra, el router que a veces se regala. Esa inversión se recupera a lo largo de los primeros meses de cuota, no el primer día. Si un cliente se va antes de haber devuelto lo que costó traerlo, la empresa pierde en él aunque haya facturado algo. Retener a un cliente que ya tienes, en cambio, cuesta una llamada y a veces un pequeño descuento. Por eso retener sale alrededor de cinco veces más barato que captar, y por eso el equipo que adivina quién está a punto de irse —el tuyo— es de los pocos que la dirección mira con cariño cuando llega el momento de recortar presupuestos.

La aritmética de la suscripción: un cliente vale lo que paga mientras se queda, no lo del primer mes. Por eso retener a tiempo es tan rentable.

## Una empresa que se está poniendo seria con los datos

Hasta hace poco más de un año, en FibraNova «predecir el churn» era que alguien de Retención miraba una lista de clientes que ya se habían ido y sacaba conclusiones a ojo. El churn se sabía a toro pasado: cada mes se contaba cuántos se habían marchado, pero nadie sabía quién iba a irse el mes siguiente. Hace unos diez meses crearon un equipo de datos de verdad, con un científico senior al frente. Tú eres la segunda incorporación, y la primera junior. Estás entrando justo en la fase en la que una empresa deja de reaccionar cuando el cliente ya se ha marchado y empieza a querer adelantarse. Es la fase más interesante para aprender, porque todavía no hay nada montado y se construye contigo delante.

El cuello de botella no es tener gente para llamar: es a quién llamar primero. El equipo de retención tiene teleoperadores que, cuando llaman a tiempo y ofrecen algo (un descuento, más gigas, bajar la cuota), retienen a una parte de los clientes. Pero solo dan abasto para llamar a unos pocos miles al mes, no a los casi medio millón. Si llaman a bulto o a quien grita más fuerte, gastan sus llamadas en gente que no se iba a ir de todas formas y no llegan a los que sí. Ordenar a los clientes por riesgo de baja —poner los primeros de la lista a los que de verdad están a punto de irse— es, literalmente, el encargo de tu semana.

Conviene que entiendas cómo trabaja de verdad el equipo de Lola, porque tu modelo no vive en el vacío: alimenta un proceso con personas y con un reloj. Cada mañana, los teleoperadores reciben una lista de clientes a los que llamar. Marcan un número, y si el cliente coge, le ofrecen algo para que se quede: rebajarle la cuota, regalarle gigas, adelantarle el móvil nuevo. No funciona siempre —hay quien ya ha firmado con la competencia y no hay vuelta atrás—, pero funciona lo suficiente como para que valga la pena, siempre que llamen a la persona correcta en el momento correcto. El recurso escaso no es el descuento: es la llamada. Un teleoperador hace del orden de cuarenta llamadas útiles al día, y el equipo entero no llega a unos pocos miles de clientes al mes. Esa es la restricción que convierte tu problema en un problema de prioridades.

Piénsalo como un embudo. Arriba están todos los clientes activos, casi medio millón. De ellos, cada mes, una fracción está de verdad en riesgo de irse. Y de esos, el equipo de retención solo puede llamar a unos pocos miles. Si la lista que les das está bien ordenada, esos pocos miles de llamadas caen sobre clientes que de verdad estaban a punto de marcharse, y salvas a una buena parte. Si la lista está mal ordenada —o peor, si está ordenada por un dato tramposo—, las llamadas caen sobre gente que no se iba a ir, y los que sí se iban se marchan sin que nadie los telefonee. El modelo no decide a quién llamar; decide el ORDEN de la lista, y en un embudo tan estrecho el orden lo es casi todo.

El recurso escaso es la llamada. El modelo no amplía el embudo: ordena la lista para que las pocas llamadas posibles caigan sobre quien de verdad se va.

Eso significa que el sitio no es perfecto, y menos mal, porque de lo imperfecto se aprende. Hay tres cosas que vas a notar esta misma semana, y conviene que las conozcas de entrada:

  1. 01.Los extractos del sistema vienen sucios. La cuota llega como texto con el símbolo del euro y la coma decimal, las fechas en tres formatos distintos, y el tipo de contrato escrito de media docena de maneras. Nadie los ha estandarizado, y antes de calcular nada hay que limpiarlos.
  2. 02.Hay columnas que parecen oro y son veneno. En el almacén hay datos que solo se conocen DESPUÉS de que el cliente se fue: el motivo de la baja, la fecha de cancelación. Usarlos para predecir la baja parece genial y es el error más caro del oficio. Lo vas a vivir en carne propia esta semana, y no solo con la columna obvia.
  3. 03.El acierto engaña. Como solo una pequeña parte de los clientes se va, un modelo que diga «no se va nadie» acierta casi siempre. Vas a entrenar uno que da un 96% y vas a tener que aprender por qué ese 96% está a un paso de no valer nada.

Consejo de senior: en ciencia de datos, un resultado bueno es una hipótesis, no una conclusión. Cuando un número te salga redondo —un 96% de acierto, un modelo «perfecto»— no lo celebres: pregúntate qué tendría que ser cierto para que ese número fuera mentira. Esa pregunta, hecha a tiempo, es la diferencia entre un científico de datos y alguien que sabe llamar a una función.

## Un vocabulario mínimo: target, feature, clasificación

Antes de conocer al equipo, tres palabras que vas a usar todos los días de esta semana y que conviene no confundir. Tu encargo es un problema de «clasificación»: dado un cliente, decidir a cuál de dos grupos pertenece, «se va» o «se queda». A la respuesta que el modelo intenta adivinar se le llama el «target» (en español, la variable objetivo): aquí será una columna que vale 1 si el cliente se dio de baja y 0 si no. A cada dato que describe al cliente y que el modelo usa para decidir se le llama una «feature» (una característica, o variable predictora): su antigüedad, su cuota, cuánto consume, cuántas veces ha llamado a soporte. El modelo aprende, mirando muchos clientes de los que ya sabemos si se fueron, qué combinación de features suele venir antes de una baja.

La frontera entre un target y una feature parece obvia y es la trampa de media semana. Una feature solo es legítima si existía ANTES de que el cliente decidiera irse: si usas un dato que solo aparece después de la baja, no estás prediciendo el futuro, estás leyendo el presente y llamándolo predicción. Grábate esta pregunta, porque es la que ordena todo lo demás: ¿qué sabía yo de este cliente en el momento de predecir? Si la respuesta a una columna es «nada, porque ese dato aún no existía», esa columna no puede ser una feature por mucho que correlacione de maravilla.

## El stack de FibraNova: de dónde nacen los datos y dónde los vas a modelar

Antes de seguir conviene que sepas dónde vive cada dato, porque en tu primera semana vas a oír media docena de nombres de herramientas como si todo el mundo naciera sabiéndolos. No es así: cada una resolvió un problema concreto en algún momento. El conjunto de tecnologías que usa una empresa se llama, en la jerga, el «stack» (literalmente, «la pila»). No tienes que dominar ninguna esta semana; solo saber qué hace cada una. Y hay una idea que lo ordena todo: los datos nacen en un sitio (cuando un cliente contrata, consume o llama a soporte), se guardan en otro (un almacén de datos), y se modelan en un tercero (tú, en Python). Mira el viaje entero antes de los detalles:

El viaje del dato: nace en los sistemas, se guarda en el almacén, y se modela en Python. Tableau cuenta lo que pasó; tú predices lo que va a pasar.

Fíjate en la división que importa para tu semana. FibraNova tiene Tableau para los cuadros de mando que ve dirección: gráficos limpios que cuentan cómo fue el mes, cuántos se fueron, por qué provincias. Tableau cuenta lo que ya pasó, y lo hace bien. Pero no entrena un modelo que ordene a los clientes por riesgo de irse mañana: para eso el equipo trabaja en Python, con pandas para preparar los datos, scikit-learn para el modelo y algo de SQL para cruzar los extractos. Esta semana te quedas en esa fase, y nadie espera que toques Tableau. Con el tiempo tus resultados acabarán ahí, pero una cifra no va al panel de dirección hasta que alguien la ha construido, comprobado y sabe defenderla. Ese «alguien», esta semana, eres tú.

No te agobies con la lista de nombres. Nadie espera que el primer día sepas usar Oracle, Zendesk o Tableau. Lo que sí se espera es que sepas de dónde viene cada dato que tocas: si alguien te pasa un fichero de bajas, saber que salió del sistema de facturación —y que una baja solo se registra cuando el cliente ya se ha ido— te dice qué puedes y qué no puedes hacer con él. El origen de un dato, y sobre todo el MOMENTO en que se rellena, es parte del dato.

## Tu equipo

En una empresa, media semana de un junior se gana o se pierde en saber a quién dirigirse para cada cosa. Vas a trabajar con cuatro personas, y cada una es dueña de algo distinto. Conócelas antes de empezar, porque dirigir una pregunta a la persona equivocada cuesta horas.

  • Raúl Herrera — Data Lead, tu mentor. Físico de formación y doce años haciendo modelos en banca antes de montar el equipo de datos de FibraNova. Ha visto reventar en producción más modelos «que iban genial» de los que le gustaría, y de ahí le viene una obsesión única: que un modelo sea honesto. No te da la respuesta, te hace la pregunta que te lleva a verla. Antes de mirar ninguna métrica pregunta siempre lo mismo: «¿y qué sabías tú de ese cliente en el momento de predecir?». Su frase: «Un modelo que acierta mucho en tu portátil y falla en la calle no es un buen modelo, es una mentira bien formateada.»
  • Lola Prieto — Responsable de Retención, tu stakeholder principal. Lleva seis años en atención al cliente y ascendió desde teleoperadora, así que sabe de clientes más que nadie en la empresa. Lo que no tiene es tiempo ni paciencia para «proyectos de laboratorio». Ya tiene una conclusión en la cabeza antes de ver nada: «los que se van son los de contrato mensual, dame la lista de esos y ya». Quiere que el modelo se lo confirme y se lo dé esta semana, porque tiene a su equipo esperando. No es mala: cada día sin lista son clientes que se van sin que nadie los llame.
  • Bea Montes — Data Scientist mid, tu compañera. Matemáticas y dos años en FibraNova. Entró como junior, así que sabe exactamente por dónde vas a sufrir, y es tu apoyo del día a día. Conoce todas las trampas de los extractos del core porque las ha sufrido. A veces te suelta un atajo sin explicarte por qué funciona, y tiene una frasecita que repite y a la que nadie hace mucho caso: «ojo con las columnas que no sabes de dónde salen, que alguna te está chivando el futuro».
  • Ignacio Vázquez — Director de Clientes, la audiencia de la demo del viernes. Veinte años en telco, de los de «empecé vendiendo líneas». No quiere ver tu código ni tus matrices: quiere saber si puede fiarse de la lista y a cuánta gente salva su equipo con ella. Si le enseñas un gráfico que no se entiende en cinco segundos, desconecta. Prefiere una cifra honesta incómoda a una bonita que luego falle. Su frase: «Vale, muy bonito. ¿La lista funciona o no? ¿Mi equipo tiene que fiarse de ella?»

Hay una tensión sana entre Raúl y Lola que vas a vivir toda la semana, y conviene que la entiendas en vez de sufrirla. Lola quiere la lista ya; Raúl quiere que la lista sea de verdad. Los dos tienen razón, y tú estás en medio. La lección que te llevas no es «hazle caso a uno», es que entregar deprisa algo en lo que no confías es peor que tardar un día más. Sostener la presión de Lola el tiempo justo para comprobar que tu trabajo vale es parte del oficio, no una falta de respeto.

## El encargo de la semana

Raúl te lo deja claro en la reunión de arranque: «FibraNova pierde cada mes el 2% de sus clientes. Retención tiene gente para llamar a unos pocos miles, no a medio millón. Tu encargo: construir un primer modelo que ordene a los clientes activos por riesgo de baja, para que Lola llame primero a los que de verdad están a punto de irse. No te pido un sistema, no te pido infraestructura, no te pido poner nada en producción. Te pido un modelo honesto y una lista en la que podamos confiar. Pregúntame lo que necesites.»

A los pocos minutos te escribe Lola por Slack, con prisa y con la respuesta ya puesta: te deja en la carpeta compartida los extractos del sistema —los clientes, el consumo de los últimos meses, los tickets de soporte, las bajas del trimestre, y aparte la lista de los clientes activos de hoy— y te adelanta su teoría: «los que se van son los de contrato mensual, eso lo sé yo de sobra; si me confirmas eso y me sacas la lista de los 2.000 de más riesgo, me salvas la semana». Fíjate en el contraste: Raúl te pide un método; Lola te pide un resultado y además te sugiere cuál debería ser. Tu trabajo no es darle la razón a nadie: es comprobar.

La semana que tienes por delante sigue el ritmo de un proyecto real. El lunes exploras los datos sin tocar nada todavía. El martes los limpias y construyes el target: qué significa exactamente que un cliente «se fue». El miércoles construyes las features, entrenas tu primer modelo y te llevas una alegría. El jueves esa alegría se desmonta en dos golpes, y es el día que de verdad te hace científico de datos. Y el viernes conviertes todo eso en algo que Ignacio pueda entender en cinco segundos y en una lista en la que Lola pueda confiar. El modelo es una pequeña parte de todo esto; el resto es entender el problema, los datos y lo que se juega la empresa con tu respuesta.

Mira el recorrido entero de un vistazo, porque te va a servir de mapa para no perderte. Fíjate en una cosa: el único día que de verdad tocas scikit-learn con ganas es el miércoles. El resto de la semana es entender, limpiar, dudar y contar. Esa proporción no es un capricho del caso: es cómo se reparte el tiempo en el trabajo real de un científico de datos. Si esperabas una semana entrenando modelos, es justo al revés, y entender por qué es la primera lección del oficio.

El mapa de la semana. El modelo es solo el miércoles; el resto es entender, dudar y contar. Esa proporción es el oficio.

Consejo de senior: cuando entres en una empresa nueva, dedica la primera semana a dibujar el mapa del stack aunque nadie te lo pida. ¿Dónde nacen los datos? ¿Dónde se guardan? ¿Quién los mira y con qué herramienta? Y para cada columna que vayas a usar, una pregunta más: ¿en qué momento se rellena? Ese dibujo te convierte en alguien que entiende el negocio, no solo en alguien que ejecuta funciones. Y es, además, la primera defensa contra la fuga de datos que vas a cazar el jueves.

## Dos entregables, no uno: el informe y el repositorio

Antes de cerrar el primer día, Raúl te deja una última cosa clara, y es importante porque cambia cómo trabajas toda la semana. El viernes no entregas solo una conclusión para Ignacio. Entregas dos cosas. La primera es el mensaje para dirección: la verdad sobre si la lista funciona, en el idioma de quien decide. La segunda la enuncia Raúl así: «todo lo que escribas esta semana lo vas a dejar ordenado en un repositorio de proyecto, el mismo que usaríamos si esto fuera a producción. Cuando acabes, no tendrás un montón de trozos de código sueltos: tendrás un proyecto que puedes abrir, entender y, si quieres, subir a tu GitHub como pieza de portfolio». Un «repositorio» es, sin misterio, la carpeta de un proyecto con sus ficheros organizados de una forma que cualquiera reconoce: dónde están los datos, dónde el código, dónde lo que el código produce.

Esto tiene una consecuencia práctica que notarás cada día, aunque al principio no te des cuenta. Cada ejercicio de código que resuelvas no es un trozo aislado: es un fragmento de un fichero concreto del proyecto. Los ejercicios de explorar van llenando un fichero; los de limpieza, otro; los del modelo, otro. Tú los resuelves de uno en uno, centrado en el problema de ese momento, pero por debajo estás escribiendo un programa completo y ordenado. El viernes, cuando mires atrás, descubrirás que lo que parecían ejercicios sueltos era, todo el tiempo, un proyecto montándose pieza a pieza. Raúl ya te ha dejado el esqueleto —las carpetas vacías con sus nombres— para que solo tengas que ir rellenándolas.

Este es el esqueleto que te ha dejado Raúl. No hace falta que lo entiendas entero hoy; es el mapa de lo que vas a tener el viernes. Fíjate en la carpeta `src/` (del inglés «source», el código fuente): dentro hay cinco ficheros numerados, uno por etapa del método, en el mismo orden en que vas a recorrer la semana. Explorar, limpiar, modelar, evaluar y sacar la lista. Esos números no son decorativos: dicen el orden en que se ejecuta el proyecto de principio a fin.

El esqueleto del repositorio. Vacío hoy; el viernes estará lleno. Cada día de la semana rellena uno de los ficheros numerados de src/.

No te preocupes por memorizar esta estructura: la irás viendo surgir sola. Lo único que importa que te lleves hoy es la idea de fondo, que es la que ordena toda la semana: no estás haciendo ejercicios, estás construyendo un proyecto. Y un proyecto que se entiende, se ordena y se puede enseñar vale mucho más que un acierto del 99% que no sabes defender.

A partir de la siguiente lección trabajarás con los datos reales de FibraNova: clientes y contratos, consumo mensual, tickets de soporte, el registro de bajas y la lista de clientes activos de hoy. Descárgalos desde el apartado de datasets del caso. Ojo con el fichero de bajas: tiene columnas que solo existen DESPUÉS de que el cliente se fue, y aprender a distinguirlas de las demás es medio caso. Tendrás Python con pandas y scikit-learn, y DuckDB para las consultas SQL.

volver a la visión del caso y descargar los datasets

Regístrate para guardar tu progreso.