Saltar al contenido

lección 5

Jueves A: la accuracy miente

El primer golpe: un modelo que dice «no se va nadie» ya acierta el 95%, y tu 99% se desmonta. Entra la matriz de confusión.

⏱ 50 min

## Jueves, 10:05. La pregunta que lo cambia todo

Llegas con el 99% todavía caliente y ganas de mandarle la lista a Lola. Raúl te sienta a su lado y, antes de mirar una sola línea de tu código, te hace una pregunta que parece de broma. Lo de hoy y lo de esta tarde van juntos al cuarto fichero del proyecto, `src/04_evaluar.py`: la etapa que decide si el modelo es de fiar.

1Raúl 10:05
2Antes de mirar tu codigo, una pregunta. Si tu modelo dijera
3"no se va nadie, nunca", sin mirar un solo dato... ¿que acierto
4tendria?
5
6Tú 10:07
7...el 95%. Porque solo se va el 5%.
8
9Raúl 10:08
10Exacto. Tu modelo, con todo tu esfuerzo, saca un 99%. Esta a
11cuatro puntos de un modelo que no hace absolutamente nada.
12¿Sigue pareciendote un 99% heroico?

La pregunta que desmonta el 99% sin mirar una línea de código.

Se te cae el alma, y con razón. Un modelo que no hace absolutamente nada, que ni siquiera mira los datos, acierta el 95% de las veces solo porque la mayoría de los clientes se quedan. Y el tuyo, con todo tu esfuerzo, saca un 99%: está a cuatro puntos de no hacer nada. De repente ese 99% no parece tan heroico. Aquí está la trampa que vas a desmontar hoy: cuando una clase es tan rara, la accuracy —el porcentaje de aciertos global— deja de medir lo que crees que mide. No es que el número esté mal calculado; es que mide una cosa que no te importa (acertar la clase grande) y calla la que sí (encontrar a los que se van).

Raúl lo resume con una analogía que no vas a olvidar: «un detector de terremotos que diga "hoy no tiembla" acierta el 99,9% de los días, y es completamente inútil, porque falla justo el único día que importa». La accuracy premia acertar la clase mayoritaria, que aquí es la aburrida: los que se quedan. Pero a ti no te pagan por adivinar quién se queda. Te pagan por encontrar a los que se van, que son la minoría, y la accuracy global apenas se mueve aunque falles con todos ellos. Mídelo donde duele.

La herramienta que convierte esa intuición en un hábito se llama línea base: antes de celebrar el acierto de ningún modelo, calcula el acierto del modelo más tonto posible, el que no mira los datos y siempre predice la clase mayoritaria. Aquí, «no se va nadie» acierta el 95%. Esa cifra es la vara contra la que se mide cualquier cosa que entrenes: un modelo que no la supere con holgura no está aprendiendo nada útil, solo imitando a la clase grande. Dibujado, tu 99% deja de parecer un héroe:

La línea base al lado del modelo: el 99% solo mejora cuatro puntos sobre no mirar los datos. En un problema con 5% de bajas, la accuracy global apenas distingue un buen modelo de uno inútil.

Que te quede claro que esto no es una rareza de FibraNova: el desbalanceo está en todas partes, y es precisamente donde más daño hace la accuracy. Un detector de fraude en tarjetas trabaja con menos de un 1% de operaciones fraudulentas; un sistema que detecta una enfermedad rara, con un puñado de casos entre miles de sanos; un modelo de averías de maquinaria, con las máquinas rotas siendo la minoría absoluta. En todos ellos, un modelo que diga «nunca pasa nada» acierta el 99% y es completamente inútil, porque falla justo en el caso que importa. Aprender a no fiarte de la accuracy en estos problemas no te sirve solo para el churn de una telco: te sirve para la mitad de los problemas de verdad valiosos que vas a encontrar en tu carrera, porque los eventos que de verdad interesa predecir casi siempre son los raros.

## La matriz de confusión: cuatro casillas que lo cuentan todo

Para mirar donde duele hace falta dejar de ver un solo número y abrir la caja. La herramienta se llama matriz de confusión, y es una tabla de dos por dos que cruza lo que de verdad pasó con lo que el modelo predijo. En un problema de churn, sus cuatro casillas tienen nombre de negocio, y vale la pena decirlas en el idioma del problema y no solo con la jerga: los que se quedaron y el modelo acertó (bien), los que se quedaron pero el modelo dio una falsa alarma (una llamada desperdiciada, poco grave), los que se iban y el modelo cazó (el oro: a esos les llegas a tiempo), y los que se iban pero al modelo se le escaparon (lo caro: se van sin que nadie les llame). Mira las cuatro:

La matriz de confusión existe precisamente porque un solo número de acierto esconde demasiado. Fíjate en lo que te permite ver que la accuracy callaba: la accuracy mete en el mismo saco los 2.253 aciertos aburridos (clientes que se quedan, que el modelo adivina con los ojos cerrados) y los 124 aciertos valiosos (clientes que se van, que son los que te importan). Al sumarlos en un solo porcentaje, los 2.253 aplastan a los 124, y el número sale precioso aunque fallaras con casi todos los que se van. La matriz separa esos sacos: pone cada tipo de acierto y cada tipo de error en su casilla, y te obliga a mirar justo la esquina que la accuracy escondía. Donde un número decía «99%, todo bien», cuatro casillas dicen «sí, pero mira a quién se te escapa».

La matriz abre el 99% en cuatro casillas. Lo caro es la roja: los que se iban y se escaparon. Un único número de acierto esconde todo esto.

## Precisión y exhaustividad: las dos preguntas que de verdad importan

De esas cuatro casillas salen dos métricas que miran precisamente la clase que te importa, los que se van, y que son las que de verdad valen en un problema desbalanceado. La primera es la precisión: de todos los clientes que el modelo marcó como «se va», ¿cuántos se iban de verdad? Mide cuánto puedes fiarte de una alarma. La segunda es la exhaustividad —en inglés, recall—: de todos los que se iban de verdad, ¿a cuántos cazó el modelo? Mide cuántos se te escapan. Son dos preguntas distintas y a menudo en tensión: puedes tener una precisión altísima marcando solo a los clientísimos de que se van (y dejando escapar a muchos), o una exhaustividad altísima marcando a medio mundo (y llenándote de falsas alarmas). Para retención, la que más duele es la exhaustividad: un cliente que se escapa es un cliente perdido que nadie llamó.

La tensión entre esas dos métricas no es un tecnicismo, es una decisión de negocio disfrazada de número. Imagina los dos extremos. Un modelo prudentísimo que solo marca «se va» cuando está segurísimo tendrá una precisión altísima —casi todos los que marca se van de verdad— pero dejará escapar a montones, porque ante la duda no marca: su exhaustividad será baja. Un modelo alarmista que marca a medio mundo cazará a casi todos los que se van —exhaustividad altísima— pero a costa de un montón de falsas alarmas: su precisión será baja. Entre esos dos extremos hay que elegir, y la elección depende de qué error cuesta más en tu negocio. En FibraNova, donde una llamada desperdiciada es barata y un cliente perdido es caro, el equipo preferirá empujar hacia la exhaustividad: mejor llamar a alguno de más que dejar escapar a los que se iban. En un banco que decide a quién dar un crédito, la balanza sería la contraria. No hay una respuesta universal; hay una decisión, y es tuya la responsabilidad de plantearla.

Precisión y exhaustividad miran la misma clase desde dos ángulos: cuántos de los que se van cazo (recall) y cuántos de los que marco acierto (precisión). Son preguntas distintas y a menudo en tensión.

Cuando calculas estas métricas sobre tu modelo del 99%, la exhaustividad sale altísima: 0,93. El modelo caza a 93 de cada 100 clientes que se van. Para un primer modelo de churn hecho en una tarde, eso es sospechosamente bueno. Y aquí Raúl te deja la frase que te va a tener dándole vueltas toda la mañana: «0,93 de exhaustividad en un problema de churn con un primer modelo... ¿no te chirría? Vuelve a la pregunta del lunes: ¿qué sabías de cada cliente en el momento de predecir?». El primer golpe —la accuracy engaña— te ha enseñado a mirar la métrica correcta. Pero la métrica correcta acaba de darte un número demasiado bonito, y eso, en este oficio, no es una buena noticia: es una pista. Mañana por la mañana, en la parte B, tiras del hilo.

La exhaustividad (recall) y la precisión no son intercambiables, y confundirlas lleva a decisiones malas. «El modelo acierta el 90%» no significa nada hasta que digas sobre qué: ¿el 90% de los que marca se van de verdad (precisión), o caza al 90% de los que se van (exhaustividad)? Son cosas distintas, y en un problema desbalanceado la accuracy global no es ninguna de las dos. Cada vez que alguien te diga «el modelo va muy bien», pregunta en qué métrica y sobre qué clase.

Antes de seguir, conviene traducir las cuatro casillas de la matriz al dinero de FibraNova, porque las métricas no son neutras: cada tipo de error cuesta algo distinto. Una falsa alarma —marcar como «se va» a alguien que se quedaba— cuesta una llamada desperdiciada: el teleoperador telefonea a alguien que no se iba, le roba cinco minutos y poco más. Es barato. Un cliente que se escapa —no marcar a alguien que sí se iba— cuesta el cliente entero: se marcha sin que nadie lo llame, y recuperarlo captando a otro nuevo sale, como viste el lunes, unas cinco veces más caro. Por eso en churn los dos errores no pesan igual, y la métrica que más duele es la exhaustividad: cada punto que baja son clientes reales que se van sin una llamada. Decidir qué error te importa más antes de mirar las cifras es parte del oficio, no un detalle.

Consejo de senior: cuando una métrica te salga demasiado bien, no la celebres: trátala como un síntoma. Un recall de 0,93 en un primer modelo de churn es como una fiebre de 42 grados: puede ser real, pero lo primero que haces es comprobar que el termómetro no esté roto. En machine learning, el termómetro roto más común se llama fuga de datos, y mañana vas a aprender a detectarlo.

Antes de cerrar, conviene que no te lleves una idea equivocada: que la accuracy «es mala» y hay que desterrarla. No. La accuracy es una métrica perfectamente útil cuando las dos clases están equilibradas: si la mitad de los clientes se fueran y la otra mitad no, un 99% de acierto sería un modelo buenísimo de verdad. El problema no es la métrica, es usarla fuera de su sitio, en un problema donde una clase aplasta a la otra. Esa es una lección más general que el churn: ninguna métrica es buena o mala en abstracto; lo es o no según el problema. Tu trabajo no es memorizar «usa recall, no accuracy», es entender qué mide cada una para elegir la que responde a tu pregunta. El día que un comercial te presuma de un modelo con «95% de acierto», tu primera pregunta ya no será «¿sobre qué datos?», será «¿y qué porcentaje tiene la clase mayoritaria?».

Cierras la mañana con una sensación rara: el primer golpe te ha enseñado a mirar la métrica correcta (la exhaustividad, no el acierto global), pero esa métrica correcta te ha devuelto un número demasiado bonito, 0,93, y en vez de tranquilizarte te inquieta. Has aprendido lo bastante esta semana para saber que un recall así en un primer modelo de churn no es normal. No sabes todavía por qué, pero la frase de Bea del lunes —«alguna columna te está chivando el futuro»— te ronda la cabeza. Mañana por la mañana, en la parte B del jueves, tiras del hilo y descubres que el termómetro, en efecto, estaba roto.

Regístrate para guardar tu progreso.