まとめ
- 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.