Precisión, Recall y ROC en redes neuronales

Resumen

Cuando entrenas una red neuronal convolucional para clasificar imágenes médicas, el accuracy no basta. Necesitas métricas de evaluación como precisión, recall, F1 score y curva ROC para detectar falsos positivos, falsos negativos y posibles casos de overfitting antes de llevar el modelo a producción.

Esto importa especialmente cuando el costo de equivocarse es alto, como diagnosticar neumonía a partir de radiografías. Aquí te muestro cómo interpretar cada métrica y qué decisiones tomar con ellas.

¿Por qué el accuracy no es suficiente para evaluar un modelo?

El accuracy mide la cantidad de aciertos sobre el total, pero no distingue entre tipos de error. Y en un problema clínico, no es lo mismo decirle a una persona sana que tiene neumonía, que decirle a alguien enfermo que está bien.

Por eso, durante el entrenamiento conviene guardar los valores de las predicciones y sus probabilidades tanto en validación como en entrenamiento [02:00]. Ese registro te permite construir métricas más finas y armar un reporte completo después.

¿Qué es un falso positivo en clasificación de imágenes? Es cuando el modelo predice una clase positiva (por ejemplo, neumonía) en un caso que en realidad pertenece a la clase negativa (paciente sano). En contextos médicos puede llevar a hospitalizar personas que no lo necesitan.

Una duda común al volver a entrenar el mismo modelo: ¿por qué cambia el accuracy? Esto ocurre porque la opción shuffle true asigna las imágenes de manera aleatoria al inicializar el notebook, así que cada corrida puede arrojar métricas ligeramente distintas [03:30].

¿Qué significan precisión, recall y F1 score?

Después de entrenar tu red, generas un reporte de clasificación que evalúa cada clase (en este caso, normal y neumonía) con tres métricas que se complementan entre sí.

  • Precisión: la proporción de predicciones correctas dentro de todas las que el modelo marcó como positivas.
  • Recall: la proporción de verdaderos positivos sobre el total de casos que realmente eran positivos.
  • F1 score: la relación entre precisión y recall, ideal para resumir el desempeño en un solo número.

En la práctica, cuando armes un reporte para mostrar qué tan bien funciona tu modelo, lo usual es incluir el accuracy, el F1 score y la curva ROC [05:00]. Con esos tres números cualquier persona técnica puede entender el comportamiento general.

¿Cuándo usar F1 score en lugar de accuracy? Úsalo cuando las clases estén desbalanceadas o cuando los falsos positivos y falsos negativos tengan costos distintos. El F1 equilibra precisión y recall en una sola cifra.

¿Cómo se lee una matriz de confusión?

La matriz de confusión cruza la etiqueta verdadera con la predicción del modelo. En las filas tienes lo real y en las columnas lo que predijo la red.

Por ejemplo, si la etiqueta era normal y el modelo también dijo normal, ese cuadrante muestra los aciertos para esa clase: en la corrida del notebook fueron 47 casos [05:50]. En cambio, cuando la imagen real era de neumonía, el modelo se equivocó cuatro veces diciendo que era normal. Cada cuadrante te dice exactamente dónde acierta y dónde falla tu red.

¿Cómo interpretar la curva ROC y el AUC?

La curva ROC representa la relación entre verdaderos positivos y falsos positivos, y es una herramienta visual potente para detectar overfitting.

El overfitting o sobreajuste ocurre cuando el modelo se aprende de memoria los datos de entrenamiento y, al evaluarlo en datos nuevos como los de validación, sus métricas caen [06:40]. Es la diferencia entre memorizar y entender.

Dentro de la curva, el valor que importa es el AUC (area under curve), el área bajo la curva. Algunas referencias para leerlo:

  • 0.5: el modelo está adivinando, alterna entre clases sin criterio.
  • Cercano a 1: desempeño excelente.
  • Mayor a 0.7: el umbral que suele buscarse en la industria.

Además del valor absoluto, te interesa que la curva de entrenamiento y la de validación se parezcan entre sí. Si la diferencia es pequeña, el modelo está generalizando bien.

En la corrida del notebook ocurrió algo curioso: la validación quedó por encima del entrenamiento [08:00]. Cuando tú ejecutes el mismo código probablemente veas lo contrario. Que la validación supere al entrenamiento significa que el modelo funcionó muy bien con casos que nunca había visto, algo poco común pero positivo.

¿Está listo este modelo para salir al mercado?

Con valores bajos de accuracy y AUC, un clasificador de neumonía puede equivocarse en ambas direcciones: mandar a una persona sana al hospital o, peor todavía, decirle a alguien con neumonía que está bien. Ese segundo error es el más peligroso clínicamente.

Por eso evaluar con varias métricas no es opcional. El siguiente paso natural es optimizar el modelo para mejorar precisión, recall, F1 y AUC antes de pensar en producción.

¿Qué métrica priorizarías tú en un caso médico, recall o precisión? Cuéntame tu razonamiento en los comentarios.