Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Probabilidad y estadística para IA, Unidad 8 — Estadística en evaluación de modelos, 8.1 — Métricas de evaluación ·

Precision y recall

Precision y recall

Introducción

En el ámbito de la inteligencia artificial, especialmente dentro de los modelos de machine learning, precision y recall son métricas fundamentales para evaluar la capacidad de un modelo a la hora de clasificar correctamente las muestras. Estas métricas son cruciales porque permiten balancear entre la cantidad de falsos positivos y falsos negativos que genera el modelo. En este artículo, exploraremos en detalle cómo calcular y entender estas métricas, así como los errores comunes a evitar.

Explicación principal con ejemplos

Concepto básico

Precision se refiere al porcentaje de predicciones correctas (positivos verdaderos) entre todas las predicciones que el modelo ha hecho como positivos. Matemáticamente:

\[ \text{Precision} = \frac{\text{Verdaderos Positivos}}{\text{Verdaderos Positivos + Falsos Positivos}} \]

Recall, por otro lado, mide cuántos de los verdaderos positivos el modelo ha detectado. Se calcula como:

\[ \text{Recall} = \frac{\text{Verdaderos Positivos}}{\text{Verdaderos Positivos + Falsos Negativos}} \]

Ejemplo práctico

Consideremos un modelo de machine learning para clasificar imágenes de tumoraciones en mamografías. Supongamos que tenemos los siguientes resultados:

  • Verdaderos Positivos (TP): 50
  • Falsos Positivos (FP): 10
  • Verdaderos Negativos (TN): 90
  • Falsos Negativos (FN): 5

Entonces, la precision y recall son:

\[ \text{Precision} = \frac{50}{50 + 10} = 83.3\% \] \[ \text{Recall} = \frac{50}{50 + 5} = 90.9\% \]

Visualización

A menudo es útil visualizar estos valores en un diagrama de matriz de confusión:

import matplotlib.pyplot as plt
import numpy as np

# Datos de la matriz de confusión
confusion_matrix = [[85, 10], [5, 40]]

# Crear un heatmap para la matriz de confusión
plt.imshow(confusion_matrix, interpolation='nearest', cmap=plt.cm.Blues)
plt.title('Matriz de Confusión')
plt.colorbar()
tick_marks = np.arange(2)
plt.xticks(tick_marks, ['Negativo', 'Positivo'])
plt.yticks(tick_marks, ['Negativo', 'Positivo'])

# Mostrar los valores en el heatmap
thresh = confusion_matrix.max() / 2.
for i in range(confusion_matrix.shape[0]):
    for j in range(confusion_matrix.shape[1]):
        plt.text(j, i, format(confusion_matrix[i, j], 'd'),
                 ha="center", va="center",
                 color="white" if confusion_matrix[i, j] > thresh else "black")

plt.tight_layout()
plt.ylabel('Verdadero valor')
plt.xlabel('Predicción')
plt.show()

Errores típicos / trampas

  1. Interpretación incorrecta: A menudo se confunde recall con precisión. Recordemos que recall mide la cantidad de verdaderos positivos identificados, mientras que precisión mide cuántos de los positivos predichos son realmente correctos.
  1. Balancear recall y precision: En problemas de clasificación desbalanceados (donde una clase tiene mucho más datos que otra), es fácil olvidarse del balance entre recall y precisión. Se puede dar prioridad a un valor sobre el otro, pero esto debe ser deliberado.
  1. Métricas individuales vs. conjuntas: A menudo se evalúa precision o recall en silos. Sin embargo, es crucial considerar cómo interactúan estas métricas para obtener una visión completa del desempeño del modelo.

Checklist accionable

  1. Entender el problema de negocio: Antes de empezar a optimizar precision o recall, asegúrate de entender completamente los requisitos del problema y qué significa un buen balance entre ambos.
  2. Usar la F1-score: Para obtener una métrica conjunta que equilibre precisión y recall, calcula la F1-score (promedio aritmético ponderada entre precision y recall).
  3. Validación cruzada: Asegúrate de usar validación cruzada para evaluar el modelo en múltiples particiones del conjunto de datos.
  4. Análisis por clase: Si es un problema multiclase, analiza cada clase individualmente para entender dónde se puede mejorar la precisión y recall.
  5. Métricas adicionales: Considera otras métricas como AUC-ROC y precision-recall curve (PRC) para una evaluación más completa.

Cierre con "Siguientes pasos"

Siguientes pasos

  1. Explorar precision-recall curve (PRC): Visualiza cómo la recall cambia a medida que se ajusta el umbral de decisión.
  2. Aprender sobre AUC-ROC: Comprende qué significa el área bajo la curva ROC y cuándo es apropiado usarla en lugar del PRC.
  3. Implementar validación cruzada regularmente: Asegúrate de que tus métricas sean consistentes a través de diferentes particiones del conjunto de datos.

Probemos nuestro conocimiento en precisión y recall con la siguiente pregunta: ¿Qué significa un valor alto de F1-score?

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).