Recall@k y Precision@k

Eval

Recall@k y Precision@k

まとめ
  • Recall@k mide la proporción de elementos relevantes incluidos en los k primeros resultados.
  • Calculamos Recall@k y Precision@k a partir de una lista de recomendaciones para evaluar su cobertura y pureza.
  • Su interpretación depende del número de elementos relevantes y candidatos; se discuten consideraciones de diseño clave.

1. Definición #

Para una consulta \(q\) con un conjunto de elementos relevantes \(G_q\) y los k primeros candidatos \(S_{q,k}\):

$$ \mathrm{Recall@k} = \frac{|G_q \cap S_{q,k}|}{|G_q|} $$ $$ \mathrm{Precision@k} = \frac{|G_q \cap S_{q,k}|}{k} $$

  • Recall@k: Cuántos elementos relevantes se recuperaron.
  • Precision@k: Qué proporción de los elementos mostrados fueron realmente relevantes.

2. Implementación en Python #

import numpy as np

def recall_at_k(y_true: np.ndarray, y_score: np.ndarray, k: int) -> float:
    """Calcula Recall@k — proporción de verdaderos positivos dentro del top-k."""
    idx = np.argsort(-y_score)[:k]
    return float(y_true[idx].sum() / y_true.sum())

def precision_at_k(y_true: np.ndarray, y_score: np.ndarray, k: int) -> float:
    """Calcula Precision@k — fracción de elementos relevantes entre los k primeros."""
    idx = np.argsort(-y_score)[:k]
    return float(y_true[idx].sum() / k)

y_true contiene etiquetas binarias de relevancia (0/1) y y_score contiene las puntuaciones del modelo.
Cuando hay múltiples consultas, se promedian los valores obtenidos.


3. Elección de k #

  • Define k según las limitaciones del interfaz o del sistema (por ejemplo, 5 recomendaciones → Recall@5).
  • Evalúa varios valores (Recall@5, Recall@10, etc.) para analizar tendencias de cobertura.

4. Aplicaciones Prácticas #

  • Sistemas de recomendación: Verificar si los elementos que el usuario realmente selecciona aparecen en la lista.
  • Publicidad: Medir cuántos anuncios clicados o convertidos estaban dentro del top-k.
  • Pruebas A/B: Supervisar Recall@k junto con métricas online para comprobar si las mejoras offline impactan en el comportamiento real.

5. Compromiso con Precision@k #

  • Aumentar Recall@k suele reducir Precision@k al recuperar más elementos.
  • El modelo ideal busca maximizar ambos bajo un mismo k.
  • Utiliza F1@k o MAP para equilibrar recall y precision en la evaluación del ranking.

Resumen #

  • Recall@k refleja la cobertura del sistema, mientras que Precision@k indica la pureza de los resultados.
  • Define claramente k y usa varias métricas complementarias para evaluar la calidad del ranking.
  • Relacionar estos indicadores con métricas online (CTR, CVR, etc.) facilita explicar su impacto en el negocio.