
Evaluación de modelos: la matriz de confusión, Accuracy, Precision, Recall, F1, ROC, AUC y MCC
El capítulo donde tu modelo deja de presumir… y empieza a demostrar.
Entrenar un modelo es fácil. Hoy, con cuatro líneas de código, cualquiera pone en marcha una SVM, un árbol o una red neuronal. Lo difícil no es entrenar. Lo difícil es saber si realmente funciona.
Puedes tener una SVM con un margen precioso, un árbol lleno de reglas ingeniosas o una red neuronal con miles de parámetros… pero si no sabes medir, estás volando a ciegas. Y volar a ciegas con un modelo en producción es la forma más rápida de tomar una mala decisión con total confianza.
La evaluación es el momento de la verdad: donde las predicciones dejan de ser promesas y se enfrentan a la realidad. Y como vas a ver, «acertar mucho» no siempre significa «funcionar bien».

Empecemos por el principio.
La matriz de confusión: el mapa de tus aciertos y tus errores
Imagina que tu modelo es un estudiante que acaba de hacer un examen. La matriz de confusión es la corrección del profesor: no te dice solo la nota, te dice exactamente qué acertó y qué falló, y con detalle quirúrgico.
Todo parte de una idea sencilla: cada predicción puede caer en una de cuatro casillas.
- TP (True Positive) → dijiste «positivo» y era positivo. Acierto.
- TN (True Negative) → dijiste «negativo» y era negativo. Acierto.
- FP (False Positive) → dijiste «positivo» y era negativo. Falsa alarma.
- FN (False Negative) → dijiste «negativo» y era positivo. Se te escapó.
Es como un parte policial de tus predicciones: quién era culpable, quién inocente, y dónde metiste la pata. Lo bonito es que estas cuatro casillas se colocan en una tabla de 2×2, y de ellas nace absolutamente todo lo demás.
| Predijo Positivo | Predijo Negativo | |
|---|---|---|
| Es Positivo (real) | TP ✅ | FN ❌ |
| Es Negativo (real) | FP ❌ | TN ✅ |
Regla de oro para no perderte: la primera palabra (True/False) te dice si el modelo acertó. La segunda (Positive/Negative) te dice qué contestó. Así, «False Negative» = falló + contestó negativo = era positivo y no lo vio.
Un ejemplo que nos va a acompañar todo el capítulo
Vamos a inventarnos un caso concreto y lo iremos reutilizando en cada métrica, para que veas cómo el mismo modelo puede parecer un genio o un desastre según cómo lo mires.
Imagina un detector de fraude que analiza 1.000 transacciones. En realidad, solo 40 son fraude (el 4%) y 960 son legítimas (el 96%). Nuestro modelo da estos resultados:
| Predijo Fraude | Predijo Legítima | |
|---|---|---|
| Es Fraude | TP = 30 | FN = 10 |
| Es Legítima | FP = 20 | TN = 940 |
Guárdate estos números. Los vamos a exprimir.
Accuracy: la métrica que más engaña
El accuracy (exactitud) es el típico alumno que llega a casa presumiendo:
«He sacado un 97%.»
Y suena espectacular. Se calcula de la forma más intuitiva posible: aciertos entre el total.
Con nuestros números:
Un 97%. Para tirar cohetes… hasta que miras la letra pequeña.
Fíjate: de 40 fraudes reales, se le escaparon 10. Uno de cada cuatro fraudes pasó desapercibido. Y aún hay algo peor. Un modelo tramposo que dijera «todo es legítimo, aquí no hay fraude» sin mirar nada tendría 960 aciertos de 1.000, es decir, un 96% de accuracy… siendo completamente inútil. No detectaría ni un solo fraude.
Ese es el gran engaño: cuando el dataset está desbalanceado (una clase es mucho más frecuente que la otra), el accuracy se infla solo. Responde a una pregunta demasiado superficial:
«¿Cuántas veces acerté en total?»
Pero no te dice qué tipo de errores cometes, ni si esos errores importan. Y en el mundo real, no todos los errores cuestan lo mismo.
Precision: de los que señalé, ¿cuántos eran de verdad?
Imagina un detector de spam. Si marca como spam un correo de tu jefe con el asunto «reunión urgente», tienes un problema serio. Eso es un falso positivo: gritaste «¡peligro!» donde no lo había.
La precision (precisión) mide exactamente eso:
«De todas las veces que dije ‘positivo’, ¿cuántas eran verdad?»
En nuestro detector de fraude:
Traducido: de cada 100 transacciones que el modelo marca como fraude, 60 lo son de verdad y 40 son falsas alarmas. Cada falsa alarma significa un cliente legítimo con la tarjeta bloqueada llamando al banco, enfadado.
Alta precisión = pocos sustos innecesarios. La quieres alta cuando equivocarte en falso sale caro: bloquear tarjetas buenas, borrar correos importantes, acusar a un inocente.
Recall: de los que había, ¿cuántos encontré?
Ahora cambia de escenario. Imagina un detector de cáncer. Aquí lo que no te puedes permitir bajo ningún concepto es decirle «estás sano» a alguien que está enfermo. Eso es un falso negativo, y es el error más grave posible.
El recall (sensibilidad o exhaustividad) pregunta:
«De todos los positivos reales que existían, ¿cuántos conseguí encontrar?»
En nuestro caso de fraude:
Es decir: de los 40 fraudes que ocurrieron de verdad, el modelo cazó 30 y dejó escapar 10. Un 75% de detección.
Alto recall = pocos olvidos. Lo quieres alto cuando dejar escapar un positivo es un desastre: una enfermedad sin diagnosticar, un fraude que se consuma, una pieza defectuosa que llega al cliente.
La tensión eterna entre Precision y Recall
Aquí está uno de los conceptos más importantes de todo el machine learning: Precision y Recall son como una manta corta. Si tiras para taparte los pies, destapas los hombros.
Si le pides a tu modelo que no se le escape ni un fraude (recall altísimo), empezará a marcar cualquier cosa sospechosa por si acaso… y se llenará de falsas alarmas (baja precisión). Si le pides que solo avise cuando esté segurísimo (precisión altísima), se volverá tan cauto que dejará pasar fraudes dudosos (bajo recall).
No existe el «subir las dos a tope». Existe elegir tu equilibrio según lo que te cueste cada error. Y eso nos lleva a la siguiente métrica.
F1: el mediador diplomático
El F1 es el árbitro que se sienta entre Precision y Recall y dice:
«No me vale que seas buenísimo en uno y pésimo en el otro. Quiero equilibrio real.»
Matemáticamente es la media armónica de las dos, y esa palabra rara («armónica» en vez de «normal») tiene truco: castiga con dureza que una de las dos sea baja.
Con nuestros números (Precision 0,60 y Recall 0,75):
¿Por qué media armónica y no una media normal? Porque con la media normal podrías hacer trampa. Un modelo con precisión 100% y recall 0% (marca un solo caso, acierta, y se olvida de todos los demás) tendría una media normal del 50%, que suena aceptable. Pero su F1 sería casi 0, delatando que es un desastre. Por eso el F1 es tan querido en datasets desbalanceados: si cualquiera de las dos patas cojea, el F1 se desploma y no hay forma de disimularlo.
ROC y AUC: cómo se comporta tu modelo en todos los umbrales
Hasta ahora hemos dado por hecho una cosa que no es tan obvia: que el modelo dice «sí/no». Pero en realidad, la mayoría de modelos no dicen «es fraude», dicen «hay un 82% de probabilidad de fraude». Eres tú quien decide el umbral: «a partir del 50% lo considero fraude», por ejemplo.
Y aquí viene la pregunta incómoda: ¿por qué 50% y no 30% u 80%? Cada umbral que elijas cambia todos los números de la matriz de confusión. Bajar el umbral caza más fraudes (más recall) pero dispara las falsas alarmas (menos precisión), y viceversa.
La curva ROC resuelve esto de golpe: en lugar de fijar un umbral, los prueba todos y dibuja cómo se comporta el modelo en cada uno. Es como ver a tu modelo correr la carrera entera, no solo un sprint. Enfrenta dos cosas:
- TPR (True Positive Rate) = el recall. En el eje vertical.
- FPR (False Positive Rate) = la proporción de negativos que marcaste por error. En el eje horizontal.
El AUC (Area Under the Curve) es, literalmente, el área que queda bajo esa curva, y resume la carrera entera en un solo número. Su interpretación es preciosa e intuitiva:
«Si cojo un positivo al azar y un negativo al azar, ¿qué probabilidad hay de que mi modelo le dé más puntuación al positivo?»
Y se lee así:
- AUC = 1,0 → modelo perfecto, siempre distingue.
- AUC = 0,5 → no distingue nada, es tirar una moneda al aire (la temida diagonal del gráfico).
- AUC < 0,5 → va al revés, lo está haciendo peor que el azar.
Lo mejor del AUC es que no depende del umbral que elijas, así que es la herramienta ideal para comparar dos modelos de forma limpia y decir cuál separa mejor las clases en general.
MCC: la métrica adulta
Si todas las métricas fueran personajes de una serie, el accuracy sería el que presume en las fiestas, y el MCC sería el ingeniero serio de la esquina que no se deja engañar por nadie.
El Matthews Correlation Coefficient tiene una virtud que ninguna de las anteriores tiene del todo: usa las cuatro casillas de la matriz de confusión a la vez (TP, TN, FP y FN), así que no puedes engañarlo ignorando una clase. Funciona bien incluso cuando las clases están brutalmente desbalanceadas, que es justo cuando las demás métricas empiezan a mentir.
Su fórmula asusta un poco, pero no hace falta calcularla a mano nunca:
Lo que sí conviene grabarse es cómo se lee, porque va de -1 a +1 como una correlación de toda la vida:
- +1 → predicción perfecta.
- 0 → el modelo va totalmente al azar.
- -1 → predicción perfectamente al revés (falla en todo con una consistencia admirable).
Si alguien te pide una sola métrica para resumir lo bueno que es un clasificador y quieres la respuesta más honesta posible, el MCC es tu mejor apuesta.
¿Cuál usar en cada caso?
No hay una métrica «mejor» en abstracto. Hay una mejor para tu problema, y depende sobre todo de dos preguntas: ¿están balanceadas tus clases? y ¿qué error te sale más caro? Esta es la chuleta que todo científico de datos debería tener pegada en la pared:
| Situación | Métrica recomendada | Por qué |
|---|---|---|
| Dataset balanceado | Accuracy, AUC | Sin desbalanceo, el accuracy ya es fiable |
| Dataset desbalanceado | F1, MCC | Ignoran el «truco» de la clase mayoritaria |
| Falsos positivos costosos | Precision | Mide cuántas alarmas son de verdad |
| Falsos negativos costosos | Recall | Mide cuántos casos reales cazas |
| Comparar modelos | AUC, MCC | No dependen de un umbral concreto |
| Problema multiclase | Macro F1, Macro AUC, MCC | Promedian el rendimiento clase a clase |
Y para decidirlo de un vistazo

En resumen
- La matriz de confusión es la base de todo: sus cuatro casillas (TP, TN, FP, FN) son el ADN del que nacen todas las métricas.
- El accuracy es el más popular… y el más traicionero: con datos desbalanceados infla la nota y esconde los errores que importan.
- Precision y Recall responden a preguntas distintas: «¿mis alarmas son de verdad?» frente a «¿se me escapa algo?». Y compiten entre sí como una manta corta.
- El F1 equilibra ambas y castiga sin piedad que una de las dos falle.
- ROC y AUC juzgan al modelo en todos los umbrales a la vez, ideales para comparar.
- El MCC es la métrica más completa y robusta: usa las cuatro casillas y no se deja engañar por el desbalanceo.
Si tu modelo fuera un coche, estas métricas serían el panel de instrumentos. El accuracy es como mirar solo el cuentakilómetros: te dice que avanzas, pero no si vas a estrellarte. Precision, Recall, F1, AUC y MCC son el velocímetro, el nivel de gasolina y las luces de advertencia. Sin ellas, conduces a oscuras… convencido de que todo va bien.

