ML Atlas

Machine learning desde cero · Lección 2.2 · 9 de 33 lecciones listas · 10 min

Evaluar un clasificador: más allá de la exactitud

En pocas palabras

La exactitud oculta qué errores comete un modelo. La matriz de confusión, la precisión y el recall muestran el equilibrio que crea un umbral en tumores.

Calentamiento Dos preguntas de lecciones anteriores. Un minuto, y no bloquea la lección.
De la lección 2.1: Clasificación: trazar una frontera ¿Qué devuelve la regresión logística antes de aplicar cualquier umbral?

Ver la respuesta

Respuesta correcta: Una probabilidad entre 0 y 1 para una de las clases

La sigmoide convierte la suma ponderada en una probabilidad, y el umbral convierte esa probabilidad en una decisión.

De la lección 1.6: Descenso de gradiente: aprender a pequeños pasos La pérdida sube más con cada paso. ¿Cuál es la causa más probable?

Ver la respuesta

Respuesta correcta: La tasa de aprendizaje es demasiado grande y cada paso se pasa del mínimo

Con un paso demasiado grande, los parámetros saltan por encima del valle a un punto cada vez más alto, y el error crece.

Una alarma de humo que nunca suena jamás se equivoca con un incendio falso. Una alarma que chilla cada vez que haces tostadas jamás se pierde uno de verdad. ¿Cuál es mejor? Ninguna, y una sola cifra de exactitud ni siquiera te diría cuál de las dos tienes. Esta lección trata de contar los errores de forma que se vea su tipo, no solo su número. Pruébalo tú mismo antes de leer la explicación.

Predice y comprueba Quieres detectar al menos el 95 % de los tumores malignos (recall de al menos el 95 %). ¿Cuál es el umbral más alto del control que lo consigue?
¿Qué tan seguro estás?

Experimento interactivo

Este experimento interactivo funciona en un navegador con JavaScript activado. El texto que lo rodea describe lo que muestra.

Ver la respuesta

Respuesta correcta: 0,1

Con el umbral 0,1 el recall es del 96,9 % (62 de 64 tumores malignos detectados), con 0,2 solo del 92,2 % y con 0,5 del 82,8 %. Se paga con falsas alarmas: 20 biopsias sanas marcadas como malignas con 0,1, frente a 3 con 0,5.

Prueba esto

  • Mueve el control del umbral hacia la izquierda. Observa cómo disminuyen los falsos negativos en la matriz de confusión y aumentan los falsos positivos, y cómo el recall y la precisión se mueven en sentidos opuestos.
  • Mueve el control del umbral hacia la derecha y observa lo contrario. No pierdas de vista la exactitud: ¿te dice qué tipo de error estás cometiendo?
  • Encuentra el umbral más alto con el que no se pierde ningún tumor maligno. Lee cuántos tumores benignos se marcan por error en ese punto.
  • Elige el umbral que usarías para una prueba de cribado y explica en una frase por qué.

La idea en pocas palabras

Volvamos a los 569 tumores de mama de la lección 1. Un modelo da a cada tumor una puntuación: cuanto más alta, más probable es que sea maligno. Un umbral convierte la puntuación en una decisión. Cada decisión cae entonces en una de cuatro casillas:

predicho malignopredicho benigno
realmente malignoverdadero positivo (VP)falso negativo (FN)
realmente benignofalso positivo (FP)verdadero negativo (VN)

Esta tabla es la matriz de confusión. La diagonal contiene las decisiones correctas. Las otras dos casillas contienen dos tipos de error muy distintos: un falso positivo es una falsa alarma (una paciente sana enviada a más pruebas) y un falso negativo es un caso perdido (un cáncer enviado a casa).

La alarma de humo lo ilustra. La alarma muda no tiene falsos positivos y sí muchos falsos negativos. La alarma de las tostadas tiene lo contrario. Una buena alarma equilibra ambos según lo que cuesta cada error.

Por qué funciona

Dos números resumen la matriz mucho mejor que la exactitud:

precisión = VP / (VP + FP) recall = VP / (VP + FN)

El recall (exhaustividad o sensibilidad) responde: de todos los tumores malignos, ¿qué proporción detectamos? La precisión responde: de todos los tumores que llamamos malignos, ¿qué proporción lo era de verdad? El recall trata de no dejar escapar nada; la precisión, de no dar falsas alarmas.

El umbral controla el equilibrio entre ambos. Si bajas el umbral, más tumores se marcan como malignos: detectas más cánceres (el recall sube), pero también marcas más tumores benignos (la precisión suele bajar). Si lo subes, ocurre lo contrario. Ningún umbral puede maximizar ambos, salvo que el modelo separe las clases a la perfección. Elegir un umbral no es, por tanto, un detalle técnico, sino una decisión de valores: ¿cuántas falsas alarmas estás dispuesto a aceptar para no perder un cáncer?

La exactitud mezcla las cuatro casillas en un solo número y esconde esta elección. También esconde el desequilibrio de clases. Como 357 de los 569 tumores son benignos, un modelo que lo llama todo benigno acierta casi dos tercios sin detectar ni un solo cáncer: recall cero. Es la paradoja de la exactitud: un modelo puede parecer decente por su exactitud y ser inútil para aquello para lo que se construyó.

Error frecuente

El error más común es informar solo la exactitud, sobre todo con datos desequilibrados, en los que una clase es mucho más rara que la otra. El segundo es quedarse con el umbral por defecto de 0,5 sin preguntarse cuánto cuestan los errores. Una prueba de cribado, en la que un caso perdido puede ser mortal y una falsa alarma significa un examen extra, debería tener normalmente un umbral más bajo que una prueba que lleva a una cirugía. Una tercera trampa es confundir precisión y recall; recordar las preguntas que responden —«de los que marqué» frente a «de los que existen»— ayuda más que memorizar fórmulas.

Hasta ahora hemos puntuado modelos con un único conjunto de prueba fijo. Pero un modelo puede brillar con los datos de los que aprendió y fallar con todo lo demás. En la próxima lección lo provocamos a propósito: el sobreajuste.

Atrapa el error de la IA

Así respondió un chatbot. Una frase es incorrecta. ¿Cuál?

Pregunta: Con el umbral 0,1, mi clasificador de tumores detecta 62 de los 64 tumores malignos, pero también marca 20 benignos. ¿Cómo debo interpretarlo?

Respuesta del chatbot

Mostrar la frase incorrecta

La frase incorrecta: Y como la precisión es la proporción de todos los tumores malignos que el modelo detecta, aquí es igual de alta.

Esa es la definición de recall. La precisión responde a la otra pregunta —de los tumores marcados, cuántos son realmente malignos— y con el umbral 0,1 las 20 falsas alarmas la bajan, mientras que con 0,5 solo hay 3.

Test

Tres preguntas para comprobar lo aprendido. Elige una respuesta o despliega la solución bajo cada pregunta. Con el teclado: las flechas eligen, Enter o Espacio confirma.

1. Un modelo de cribado pierde muchos cánceres, pero casi nunca da una falsa alarma. ¿Qué número es bajo?
Ver la respuesta

Respuesta correcta: El recall, que mide cuántos de los cánceres reales detecta el modelo

El recall es la proporción de positivos reales que se detectaron, así que muchos casos perdidos significan un recall bajo.

2. Bajas el umbral de decisión. ¿Qué suele pasar?
Ver la respuesta

Respuesta correcta: El recall sube y la precisión baja

Un umbral más bajo marca más casos como positivos: detecta más verdaderos positivos, pero también añade falsos positivos.

3. ¿Por qué la exactitud puede engañar con los datos de tumores?
Ver la respuesta

Respuesta correcta: Porque con mayoría de benignos se puntúa bien sin detectar ningún cáncer

Con clases desequilibradas, la respuesta mayoritaria por sí sola produce una exactitud respetable y un recall cero.

Ideas clave

  • La matriz de confusión divide las decisiones en verdaderos y falsos positivos y negativos.
  • El recall es la proporción de positivos reales detectados; la precisión, la proporción de casos marcados que son reales.
  • El umbral cambia recall por precisión, y el equilibrio correcto depende del costo de cada error.
  • La exactitud oculta el tipo de errores y puede verse bien con datos desequilibrados aunque pierda todos los positivos.

Más a fondo: fórmula, código, práctica

Las matemáticas

Un umbral t convierte una puntuación en una decisión: predecir maligno cuando score ≥ t. Contar las cuatro casillas da las métricas:

  • accuracy = (TP + TN) / n, la proporción de todas las decisiones que son correctas;
  • precision = TP / (TP + FP), la proporción de alarmas que son reales;
  • recall = TP / (TP + FN), la proporción de casos reales que se detectaron;
  • F1 = 2 · precision · recall / (precision + recall), la media armónica de las dos, que se mantiene baja si cualquiera de ellas es baja.

Bajar t solo puede añadir alarmas, así que TP y FP nunca bajan y FN nunca sube. Por eso el recall nunca baja cuando t desciende, mientras que la precisión normalmente sí. Un modelo que siempre responde «benigno» tiene TP = 0, así que su recall es 0, y su exactitud es solo la proporción de la clase mayoritaria: 357 / 569.

En código (Python)

Los 569 tumores de la lección, con las 10 variables «mean» del lab, una regresión logística con escalado y una partición de prueba estratificada del 30 % (171 biopsias, random_state=1). Los recuentos propios del lab (TP / FN / FP) son 53 / 11 / 3 con umbral 0,5 y 62 / 2 / 20 con 0,1. Esta partición no es la del lab, así que los recuentos difieren un poco:

from sklearn.datasets import load_breast_cancer
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler

X, b = load_breast_cancer(return_X_y=True, as_frame=True)
X = X.filter(like="mean ")  # las 10 variables "mean", como en el lab
y = 1 - b  # en sklearn 0 = maligno; se invierte para que 1 = maligno
print(f"tumours {len(y)}, benign {(y == 0).sum()}, always-benign accuracy {(y == 0).mean():.3f}")
Xtr, Xte, ytr, yte = train_test_split(X, y, test_size=0.3, stratify=y, random_state=1)
score = make_pipeline(StandardScaler(), LogisticRegression()).fit(Xtr, ytr).predict_proba(Xte)[:, 1]
for t in (0.5, 0.1):
    flag = score >= t
    tp, fp, fn = (flag & (yte == 1)).sum(), (flag & (yte == 0)).sum(), (~flag & (yte == 1)).sum()
    print(f"t={t}: TP {tp} FN {fn} FP {fp} precision {tp / (tp + fp):.3f} recall {tp / (tp + fn):.3f}")

Resultado

tumours 569, benign 357, always-benign accuracy 0.627
t=0.5: TP 53 FN 11 FP 2 precision 0.964 recall 0.828
t=0.1: TP 61 FN 3 FP 13 precision 0.824 recall 0.953

Con 0,5 el recall es 0,828 aquí, como en el lab, pero con 0,1 es 0,953 frente al 96,9 % del lab, y las falsas alarmas son 13 en lugar de 20. El recall cambia de una partición a otra, que es justo el punto de la lección 2. Bajar el umbral de 0,5 a 0,1 sigue subiendo el recall y bajando la precisión, como dice la lección. La línea base de «siempre benigno» luce decente por exactitud y no encuentra ningún cáncer.

Para profesionales
  • Informa la precisión y el recall (o toda la matriz de confusión) junto a la exactitud, y di siempre qué clase es la «positiva».
  • Elige el umbral con datos de validación, a partir del costo de cada error, no por costumbre. El 0,5 por defecto es solo una convención.
  • Calcula siempre la línea base de predecir la clase mayoritaria. Si tu exactitud se parece a ella, el modelo ha aprendido poco.
  • El recall y la precisión con un umbral son un punto de una curva. Para comparar dos modelos con justicia, compáralos con el mismo recall o mira toda la curva de precisión-recall.
  • Una puntuación es solo un orden, a menos que esté calibrada. No leas 0,3 como «30 % de probabilidad» sin comprobar la calibración.

Profundiza en el Atlas

Entradas de la enciclopedia sobre las ideas de esta lección: