Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Clasificación de texto, Unidad 8 — Evaluación correcta, 8.1 — Métricas clave ·

Precision y recall

Precision y recall

Introducción

En la clasificación de texto, la precisión (Precision) y el recall (Recall) son dos métricas fundamentales que evalúan distintos aspectos de la calidad de nuestros modelos. La precisión mide cuántos de los documentos etiquetados como pertenecientes a una clase en particular realmente lo son, mientras que el recall mide qué porcentaje de los documentos que pertenecen a esa clase se han correctamente identificado.

A menudo, la precisión y el recall están en conflicto. Un aumento en la precisión generalmente implica un descenso en el recall, y viceversa. En este artículo, exploraremos estas métricas en detalle, proporcionando ejemplos prácticos y discutiendo errores comunes a evitar.

Explicación principal con ejemplos

Definiciones matemáticas

La precisión se calcula como:

\[ \text{Precision} = \frac{\text{TP}}{\text{TP + FP}} \]

Donde:

  • TP (True Positives): Número de documentos correctamente identificados como pertenecientes a la clase.
  • FP (False Positives): Número de documentos incorrectamente etiquetados como pertenecientes a la clase.

El recall se calcula como:

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

Donde:

  • TP: Número de documentos correctamente identificados.
  • FN (False Negatives): Número de documentos que pertenecen a la clase pero no fueron etiquetados como tal.

Ejemplo práctico

Supongamos un clasificador de spam en español, donde queremos predecir si un correo es spam o no. Consideremos el siguiente conjunto de datos:

| Correo | Clase Real | Predicción | |---------------|------------|------------| | Compra | Spam | Spam | | Falso | No Spam | No Spam | | Evento | No Spam | Spam | | Oferta | Spam | No Spam |

  • TP (Spam): 1
  • FP (No Spam, predicho como Spam): 1
  • FN (Spam, no detectado como Spam): 1

Precision: \(\frac{1}{1 + 1} = 0.5\)

Recall: \(\frac{1}{1 + 1} = 0.5\)

Código de ejemplo

A continuación se muestra un ejemplo en Python utilizando scikit-learn para calcular la precisión y el recall:

from sklearn.metrics import precision_score, recall_score
import pandas as pd

# Datos de ejemplo
data = {
    'correo': ['Compra', 'Falso', 'Evento', 'Oferta'],
    'clase_real': [1, 0, 0, 1],
    'prediccion': [1, 0, 1, 0]
}

df = pd.DataFrame(data)

# Calcular precision y recall
precision = precision_score(df['clase_real'], df['prediccion'])
recall = recall_score(df['clase_real'], df['prediccion'])

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

Errores típicos / trampas

  1. Ignorar el balance de clases: En problemas con un alto nivel de desbalance, los modelos pueden ser sesgados hacia la clase mayoritaria, lo que puede llevar a altos valores de recall para esa clase y bajos para la minoritaria.
  2. Misturar precision y accuracy: Aunque la accuracy (proporción de predicciones correctas) parece una métrica simple e intuitiva, no es útil en problemas desequilibrados ya que puede favorecer las clases más grandes.
  3. Olvidar el recall: En aplicaciones donde falsos negativos son costosos o críticos (como detección de fraudes), se debe priorizar el recall para asegurar que la mayoría de los casos reales sean correctamente identificados.

Checklist accionable

  1. Analiza el balance de clases: Verifica si tu conjunto de datos tiene un alto nivel de desbalance y considera técnicas como submuestreo o sobre-muestreo.
  2. Visualiza curvas ROC-AUC: Aunque no directamente comparan TP vs FN, pueden ayudar a entender la sensibilidad del modelo en diferentes umbrales.
  3. Revisa la matriz de confusión: Esta herramienta proporciona una visión detallada de los errores cometidos por el modelo.
  4. Utiliza cross-validation: Asegúrate de que tus métricas sean estables y no dependan del conjunto de datos utilizado en la evaluación.
  5. Pon atención al contexto: Considera las implicaciones prácticas de falsos positivos e falsos negativos.

Siguientes pasos

  1. Evaluación multietiqueta: Si trabajas con problemas multietiqueta, considera cómo adaptar estas métricas para evaluar cada etiqueta individualmente.
  2. Uso en producción: Implementa monitoreo de métricas en producción para detectar cambios en el rendimiento del modelo.
  3. Refinar modelos: Explora técnicas avanzadas como la optimización del F1-score, que es una combinación ponderada de precisión y recall.

En resumen, precision y recall son esenciales para evaluar la calidad de los clasificadores de texto. Al comprender estas métricas a fondo y estar atento a errores comunes, podrás mejorar significativamente la eficacia de tus modelos.

Contacto

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