lección 1
Bienvenida a Marea
Tu octavo y último encargo: un banco pide «la lista de los que se van». El trabajo nuevo ocurre antes del primer fit(): ver que la pregunta está mal planteada.
⏱ 55 min
## Lunes, 10:00. Tu octavo encargo, y el último de la carrera
Llevas siete trabajos a la espalda y ya no eres el que abría el primer notebook con las manos sudando. En una operadora de telefonía ordenaste clientes por riesgo de baja y aprendiste a desconfiar de una columna que lo sabía todo demasiado bien. En una empresa de agricultura miraste la forma real de los datos antes de elegir el modelo. En una ONG trabajaste con una clase rarísima y aprendiste a medir donde duele. En una central de asistencia descubriste que partir mal los datos convierte una evaluación honesta en una mentira. En una comercializadora eléctrica agrupaste sin ninguna respuesta conocida. En una consultora de scouting cazaste un modelo que memorizaba en vez de aprender. Y en una plataforma de salud aprendiste que el umbral de decisión importa más que el modelo. Hoy entras en un banco digital, y es el último encargo de tu rodaje. Esta lección no lleva una sola línea de código, y es a propósito: es la lección de cierre, y el cierre empieza por entender dónde has aterrizado y por qué este trabajo esconde una trampa que no habías visto todavía.
Marea es un neobanco nacido en Madrid en 2016: solo app, sin oficinas, con una promesa sencilla —una cuenta sin comisiones y una app que no da rabia—. Captar clientes les salió fácil: una promo de bienvenida y a correr, hasta casi un millón de cuentas abiertas. El problema llegó después, y es el problema de todos los neobancos: captar no es retener. Mucha gente abrió la cuenta por los veinte euros de bienvenida, hizo tres movimientos y volvió a su banco de siempre. Y de los que se quedaron, una parte va apagándose poco a poco: primero deja de pagar con la tarjeta, luego mueve la nómina a otro banco, sin cerrar la cuenta nunca del todo. La cuenta sigue abierta, pero está muerta.
El negocio de un neobanco no se juega en el número de cuentas: se juega en cuántas de esas cuentas son la cuenta principal del cliente, la que recibe la nómina y paga los recibos. Esa es la que genera ingresos. Una cuenta sin nómina es una cuenta que, tarde o temprano, se apaga. Por eso a Marea le quita el sueño una pregunta: ¿a quién estamos a punto de perder, y a quién podemos hacer algo por retener? Y aquí es donde entras tú.
Vas a entrar con la pregunta mal planteada, aunque todavía no lo sepas. Nerea, la directora de producto, te la va a traer con total convicción: «dame la lista de los que se van y les mando la promo». En tus siete casos anteriores el encargo venía bien planteado y la trampa estaba en los datos o en el método. Este es el último escalón: ya no te protege un enunciado bien hecho. La trampa está en la propia pregunta, y la trae quien te paga. Reformularla sin que parezca que no sabes hacer tu trabajo es la habilidad de senior que cierra tu carrera.
## El corazón del caso: la misma base, dos preguntas distintas
En tus casos anteriores la técnica central era siempre lo difícil: elegir el modelo, partir bien, calibrar, poner el umbral. Aquí no. La técnica —clasificación binaria para predecir quién va a dejar de usar la cuenta— ya la dominas; es lo que hiciste en el primer caso con la operadora. Lo difícil de este caso no es el modelo, es la pregunta: la misma base de datos de Marea admite dos preguntas distintas, y producen targets distintos, poblaciones distintas y campañas distintas.
La pregunta de Nerea es «¿quién va a dejar de usar la cuenta?». Suena única y clara. Pero fíjate en lo que esconde: no dice qué significa «dejar de usar la cuenta», ni a quién tiene sentido mandarle una promo, ni con cuánta antelación hay que avisar para que llegue a tiempo. Tres huecos, y cada uno cambia el problema. Si rellenas los huecos de la forma más fácil —«abandonar es no tener actividad el último mes», «la lista es todo el que abandona», «da igual la antelación»— construyes un modelo impecable que responde a una pregunta que no sirve. Si los rellenas pensando en la decisión de negocio, construyes otra cosa.
Consejo de senior: cuando un stakeholder te pida «la lista de los X», antes de abrir el notebook pregúntate tres cosas: qué es exactamente ser X (con un número y una ventana), a quién tiene sentido actuar de esa lista, y con cuánta antelación hay que avisar. Si no sabes responderlas, el modelo que entrenes será una respuesta preciosa a una pregunta que nadie hizo.
## El equipo: quién te empuja a la pregunta fácil y quién te saca de ella
En Marea no tienes un jefe con una corazonada: tienes una stakeholder con prisa y una pregunta mal planteada, un mentor que no te va a dar la respuesta, y un analista de negocio que te va a soltar la pista clave sin saber que es la pista clave. Estos son los nombres que vas a oír toda la semana.
- Darío Montes — Head of Data, tu mentor. Economista y estadístico, veinte años en banca y seguros. Tiene una convicción que repite a todo junior: «el error más caro de este oficio no es entrenar mal un modelo; es entrenar perfectamente el modelo que responde a la pregunta equivocada. Eso no lo caza ninguna validación cruzada». Como ya eres senior, no te va a llevar de la mano: te va a dejar chocar con la pregunta mal planteada y confía en que la reformules tú. Interviene solo con la pregunta que te desatasca. Su frase: «antes de abrir el notebook, ¿qué significa exactamente dejar de usar la cuenta, y qué vas a hacer con la respuesta?».
- Nerea Castelo — Directora de Producto, tu stakeholder. Doce años en producto digital, ahora dueña de la cuenta de resultados de retención. Tiene prisa y presupuesto para una campaña, y una idea muy clara —y equivocada— de lo que necesita. No es tonta: ha dado por sentada la parte difícil sin darse cuenta. Para ella «qué es abandonar» le suena a que la estás mareando. Su frase: «no me compliques esto. Entréname un modelo que me diga quién se va a ir, me das la lista, y yo le mando la promo. ¿Para el jueves lo tienes?».
- Pau Ribalta — Analista de Negocio, tu compañero. Ocho años en Marea, conoce el negocio al dedillo. Es quien te da las pistas del encuadre sin saber que te las está dando. Su frase: «ojo, que sin actividad y a punto de irse no es lo mismo. El que lleva seis meses sin tocar la cuenta ya se fue: no está en riesgo. Al que hay que pillar es al que todavía la usa pero ha empezado a enfriarse. Y sobre todo, al que aún tiene la nómina aquí: ese se puede salvar; el que ya la movió, no».
- Comité de Growth — la audiencia del viernes. Tres personas de negocio y finanzas que aprueban el presupuesto de la campaña. No quieren ver tu código ni tu AUC: quieren saber a cuántos clientes vas a mandar la promo, cuánto cuesta, y cuánto esperas recuperar. Si les traes «un modelo con 0,99 de AUC» sin traducirlo a esa cuenta, no aprueban nada.
Fíjate en la tensión, porque es la de todo el caso: Nerea te empuja hacia la pregunta fácil y tiene prisa; Pau te da, de pasada, las dos distinciones que la rompen (muerto frente a enfriándose, con nómina frente a sin nómina); y Darío te deja chocar para que lo veas tú. Tu trabajo no es llevarle la contraria a Nerea de entrada: es construir las dos campañas, comparar lo que cuestan y lo que retienen, y defender con una cuenta de dinero la que de verdad gana.
## Por qué trabajas en Python y SQL, no en Power BI
Marea usa Power BI para los cuadros de mando de negocio: cuántas cuentas hay, cuántas se dieron de baja. Eso describe lo que ya pasó, y para eso está bien. Pero definir qué significa «abandonar», construir el target con una ventana de fechas, separar la población accionable y comparar dos encuadres de la misma pregunta es trabajo de modelado y de SQL: vive en Python y en consultas. Pandas para explorar y montar las tablas, scikit-learn para los modelos, matplotlib para las figuras del comité, y SQL en DuckDB para cruzar los extractos y definir el target. Esta semana te quedas ahí.
## Qué vas a construir esta semana
A lo largo de los cinco días vas a montar, casi sin darte cuenta, un proyecto de código completo con estructura de repositorio. Cada bloque de código que escribas es un trozo de un fichero concreto: el lunes exploras y descubres que «abandonar» no está definido (src/01_explorar.py), el martes defines el target de dos formas y separas lo accionable de lo irrecuperable (src/02_target.py), el miércoles entrenas un modelo por encuadre y casi celebras el AUC del ingenuo (src/03_modelar.py), el jueves destapas a quién marca cada lista de verdad y haces la cuenta de dinero (src/04_evaluar.py), y el viernes sacas las figuras y escribes el informe para el comité (src/05_informe.py y el README). Al cerrar la semana tendrás un proyecto de reformulación y modelado de retención que puedes subir a GitHub como pieza de portfolio y como cierre de tu carrera.
1retencion-marea/2├── README.md ← lo escribirás el viernes3├── requirements.txt ← pandas, numpy, scikit-learn, matplotlib, duckdb4├── datos/ ← clientes.csv, actividad_mensual.csv, tabla_modelado.csv5├── sql/ ← consultas de contexto y definición del target6└── src/7 ├── 01_explorar.py ← HOY: carga, estados de cliente, "abandonar" sin definir8 ├── 02_target.py ← martes: target de dos formas + población accionable9 ├── 03_modelar.py ← miércoles: un modelo por encuadre, el AUC engañoso10 ├── 04_evaluar.py ← jueves: a quién marca cada lista y la cuenta de dinero11 └── 05_informe.py ← viernes: figuras e informe para el comité
El esqueleto del proyecto que vas a ir rellenando toda la semana. Cada script lleva un número delante que marca el orden en que se ejecuta fuera del navegador. Dentro de la plataforma cada ejercicio corre aislado y parte de los CSV de datos/, pero el código que escribes es un trozo del script numerado que le toca.
Pero hoy no se escribe código. Hoy se encuadra el problema, porque un encargo mal entendido se arregla mal por mucho que programes. Los tres ejercicios de esta lección son para asegurarte de que entiendes qué clase de trampa esconde este caso, en qué se distingue de las siete que ya conoces, y en qué orden vas a trabajar la semana. Es el trabajo de verdad del primer día del último encargo.
## comentarios
Reporta erratas, ayuda a otros o comparte tu opinión. Sé constructivo.
Inicia sesión para comentar y responder.
cargando comentarios...
Regístrate para guardar tu progreso.