Evaluar un clasificador: matriz de confusión, precisión y exhaustividad
Un filtro de spam que acierta el 75 % de las veces y aun así no sirve para nada. Cómo leer las métricas de un clasificador moviendo tú mismo el umbral, con veinte correos y sin fórmulas innecesarias.
Páginas de este taller
En esta página
Cualquier clasificador, desde un filtro de spam hasta un detector de discurso de odio, se presenta con una cifra de acierto. Esta pieza enseña a desconfiar de esa cifra y a hacer las preguntas correctas. Usaremos un único ejemplo de principio a fin, y podrás manipularlo.
1. Lo que ya sabes hacer
Si alguna vez has buscado una palabra en un corpus, ya has evaluado un clasificador sin saberlo. Buscas banco para estudiar el sentido de «entidad financiera» y la concordancia te devuelve 200 líneas. Te haces dos preguntas:
- ¿Cuántas de estas líneas me sirven? Muchas hablan de bancos de peces o de bancos del parque. Eso es ruido.
- ¿Cuántas me faltan? Las que dicen caja de ahorros o entidad no salen. Eso es silencio.
Esas dos preguntas, ruido y silencio, son exactamente las que hacen las métricas de esta pieza. Solo cambian los nombres: precisión y exhaustividad.
2. El caso: veinte correos
Un filtro de spam lee veinte correos. Una persona ya los ha revisado a mano: 5 son spam y 15 son legítimos. Esa revisión humana es la referencia, la respuesta correcta contra la que comparamos.
El filtro no responde «sí» o «no». Da a cada correo un número entre 0 y 1: lo seguro que está de que es spam. Después hay que decidir un umbral. Todo lo que llegue a ese número se marca como spam.
Prueba primero con el umbral en 0,50, que es donde empieza.
Interactivo
Mueve el umbral: ¿desde qué seguridad decimos «spam»?
El número junto a cada caso es la seguridad del sistema. Todo lo que llega al umbral se marca como «spam».
El sistema dijo «spam»
Era spam (acierto): 3
- «¡Has ganado un iPhone!» 0.95
- «Préstamo sin aval en 24 h» 0.85
- «Tu paquete está retenido: paga 1,99 €» 0.60
Era legítimo (falsa alarma): 3
- «Rebajas de tu tienda habitual» 0.70
- «Factura de octubre» 0.55
- «Cambio de contraseña solicitado» 0.50
El sistema dijo «legítimo»
Era spam (se le escapó): 2
- «Oferta exclusiva solo para ti» 0.45
- «Hola, soy un viejo amigo, mira esto» 0.30
Era legítimo (acierto): 12
- «Tu pedido ha sido enviado» 0.40
- «Confirmación de tu vuelo» 0.35
- «Boletín de la biblioteca» 0.30
- «Recibo de tu donación» 0.25
- «Invitación a un congreso» 0.22
- «Presupuesto de la reforma» 0.20
- «Recordatorio de cita médica» 0.18
- «Nota del examen» 0.15
- «Fotos de la boda» 0.12
- «Reunión del jueves» 0.10
- «Horario de tutorías» 0.08
- «¿Cenamos el sábado?» 0.05
- Exactitud
- 75 %
- 15 aciertos de 20 casos
- Precisión
- 50 %
- 3 de los 6 marcados lo eran
- Exhaustividad
- 60 %
- encontró 3 de los 5 que había
La idea: Sube el umbral y el filtro se equivoca menos al marcar, pero se le escapa más spam. Bájalo y pasa lo contrario. Ningún umbral mejora las dos cosas a la vez.
3. La matriz de confusión: cuatro casillas
Con el umbral en 0,50, cada correo cae en una de cuatro casillas. Es lo que se llama matriz de confusión: cruzar lo que dijo el sistema con lo que era de verdad.
| Era spam | Era legítimo | |
|---|---|---|
| El filtro dijo spam | 3 aciertos | 3 falsas alarmas |
| El filtro dijo legítimo | 2 se le escaparon | 12 aciertos |
En la jerga, las casillas se llaman verdaderos positivos, falsos positivos, falsos negativos y verdaderos negativos. Basta con recordar qué significan: dos formas de acertar y dos formas de equivocarse.
4. Exactitud: la cifra que engaña
La exactitud es el porcentaje de aciertos sobre el total. Aciertos: 3 + 12 = 15. Total: 20. Exactitud: 15 de 20, un 75 %.
Ahora lleva el umbral del todo a la derecha, a 1,00. El filtro ya no marca nada como spam. Mira la exactitud: sigue en el 75 %, porque los 15 correos legítimos están bien clasificados.
Es decir, nuestro filtro acierta lo mismo que no hacer nada. Pasa siempre que una clase es mucho más frecuente que la otra: decir siempre la clase frecuente da una exactitud alta sin ningún mérito.
5. Precisión: ¿cuánto ruido hay?
La precisión responde a la pregunta del ruido: de lo que el filtro marcó como spam, ¿cuánto lo era?
Con el umbral en 0,50, el filtro marcó 6 correos. De esos, 3 eran spam.
Precisión = 3 / 6 = 50 %. La mitad de la carpeta de spam son correos que alguien esperaba.
6. Exhaustividad: ¿cuánto silencio hay?
La exhaustividad (en inglés, recall) responde a la pregunta del silencio: de todo el spam que había, ¿cuánto encontró?
Había 5 correos de spam. El filtro encontró 3.
Exhaustividad = 3 / 5 = 60 %. Dos de cada cinco mensajes de spam llegan a la bandeja de entrada.
Fíjate en que las dos métricas tienen el mismo numerador (los aciertos, 3) y cambian el denominador: la precisión divide por lo que el sistema marcó; la exhaustividad, por lo que había.
7. El tira y afloja
Vuelve a la demostración y prueba estos tres umbrales:
| Umbral | Precisión | Exhaustividad | Qué pasa |
|---|---|---|---|
| 0,80 | 100 % | 40 % | Solo marca lo evidente. No se equivoca nunca, pero se le escapa más de la mitad del spam. |
| 0,50 | 50 % | 60 % | Un punto intermedio. |
| 0,30 | 45 % | 100 % | Lo encuentra todo, pero la carpeta de spam se llena de correos legítimos. |
Con un mismo sistema, mover el umbral cambia un error por otro. Por eso una métrica sola no basta: quien te diga «tenemos una precisión del 100 %» puede estar ocultando una exhaustividad del 40 %.
¿Qué conviene? Depende de qué error cuesta más. En spam suele primar la precisión: perder la factura de un cliente es peor que ver un anuncio. En otros casos, al revés.
8. F1: un resumen con trampa
A veces se quiere una sola cifra para comparar sistemas. La F1 combina precisión y exhaustividad: es una media que castiga que una de las dos sea muy baja.
Con el umbral en 0,50: 2 × 0,50 × 0,60 / (0,50 + 0,60) ≈ 0,55.
No hace falta memorizar la fórmula. Lo importante es su límite: dos filtros con la misma F1 pueden fallar de forma muy distinta, uno por exceso de ruido y otro por exceso de silencio. La F1 sirve para comparar; para decidir, vuelve a la matriz.