Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Detección de objetos, Unidad 8 — Postprocesado de detecciones, 8.2 — Ajuste de umbrales ·

Recall vs precisión

Recall vs Precisión

Introducción

En la detección de objetos, dos métricas fundamentales que se utilizan para evaluar el rendimiento de un modelo son recall y precisión. Estas métricas proporcionan una medida del rendimiento global del modelo en términos de cuántos objetos ha detectado correctamente (recall) y cuántos de los objetos que ha detectado son realmente relevantes (precisión). Entender cómo estas métricas interactúan es crucial para ajustar el modelo y optimizar sus resultados.

Explicación principal con ejemplos

Definición de Precisión

La precisión se define como la proporción correcta de predicciones positivas que son verdaderos positivos. En términos matemáticos, es:

\[ \text{Precisión} = \frac{\text{TP}}{\text{TP + FP}} \]

Donde TP (true positives) son los objetos correctamente detectados y FP (false positives) son los objetos que el modelo ha clasificado incorrectamente como positivos.

Definición de Recall

El recall se define como la proporción correcta de objetos reales que han sido correctamente identificados por el modelo. Es decir, es la capacidad del modelo para detectar todos los posibles objetos relevantes. Matemáticamente:

\[ \text{Recall} = \frac{\text{TP}}{\text{TP + FN}} \]

Donde FN (false negatives) son los objetos que han sido clasificados incorrectamente como negativos.

Ejemplo con código

Supongamos que tenemos un modelo de detección de objetos y queremos medir su recall y precisión. Podemos hacerlo así:

# Supongamos que tenemos las siguientes listas:
# true_positives: [1, 0, 1, 1]
# false_positives: [0, 1, 0]
# false_negatives: [1, 0, 0]

true_positives = [1, 0, 1, 1]  # Correct detections
false_positives = [0, 1, 0]    # Incorrectly detected as positive
false_negatives = [1, 0, 0]   # Missed detection

# Calculando precisión y recall
precision = sum(true_positives) / (sum(true_positives) + sum(false_positives))
recall = sum(true_positives) / (sum(true_positives) + sum(false_negatives))

print(f"Precisión: {precision:.2f}")
print(f"Recall: {recall:.2f}")

Gráfico de Precisión vs Recall

Un gráfico comúnmente utilizado para visualizar el trade-off entre precisión y recall es la curva Precision-Recall (PR). En esta curva, el eje X representa el recall y el eje Y representa la precisión. Cada punto en el gráfico corresponde a una determinada umbral de confianza.

import matplotlib.pyplot as plt

# Supongamos que tenemos estos valores para PR curve:
precision_values = [0.95, 0.87, 0.76, 0.64]
recall_values = [1.00, 0.90, 0.80, 0.70]

plt.figure(figsize=(8, 6))
plt.plot(recall_values, precision_values)
plt.xlabel('Recall')
plt.ylabel('Precisión')
plt.title('Curva Precision-Recall')
plt.grid(True)
plt.show()

Errores típicos / trampas

  1. Umbral de confianza erróneo: La elección del umbral de confianza puede afectar significativamente tanto la precisión como el recall. Un umbral demasiado alto puede resultar en baja precisión pero alta recall, y viceversa.
  2. Desbalanceo de clases: Si el conjunto de datos tiene desequilibrios importantes entre diferentes clases, los modelos pueden estar sesgados hacia las clases más comunes. Esto puede afectar tanto la precisión como el recall para esas clases minoritarias.
  3. Ocurrencia de falsos positivos y negativos: En muchos casos, minimizar los falsos positivos puede ser más crucial que maximizar los true positives. Sin embargo, esto puede afectar el recall del modelo.

Checklist accionable

  1. Ajuste de umbral de confianza: Experimenta con diferentes umbrales para encontrar un balance adecuado entre precisión y recall.
  2. Balanceo de clases: Si existe desequilibrio en las clases, considera técnicas como oversampling o undersampling para equilibrar el conjunto de datos.
  3. Visualización PR curve: Utiliza la curva PR para entender cómo el modelo se comporta a diferentes umbrales de confianza.
  4. Análisis detallado de errores: Analiza los falsos positivos y negativos en detalle para identificar patrones comunes o problemas específicos del conjunto de datos.
  5. Validación cruzada: Utiliza validación cruzada para obtener una medición más precisa de la precisión y recall.

Cierre con "Siguientes pasos"

  1. Exploremos técnicas avanzadas: Considera técnicas como NMS (Non-Maximum Suppression) para mejorar la calidad de las detecciones.
  2. Práctica constante: Continúa entrenando modelos y ajustándolos según el balance entre precisión y recall.
  3. Aplicación en proyectos reales: Implementa modelos de detección de objetos en proyectos prácticos para obtener una mejor comprensión del rendimiento real.

Entender la interacción entre recall y precisión es fundamental para optimizar los modelos de detección de objetos. Con un enfoque meticuloso y constante, puedes mejorar significativamente el rendimiento de tus modelos.

Contacto

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