まとめ
- Top-k Accuracy y Recall@kの概要を押さえ、評価対象と読み取り方を整理します。
- Python 3.13 のコード例で算出・可視化し、手順と実務での確認ポイントを確認します。
- 図表や補助指標を組み合わせ、モデル比較や閾値調整に活かすヒントをまとめます。
1. Definición #
Si el modelo genera puntajes por clase y \(S_k(x)\) denota los k mejores candidatos para la entrada \(x\), entonces
$$
\mathrm{Top\text{-}k\ Accuracy} = \frac{1}{n} \sum_{i=1}^n \mathbf{1}{ y_i \in S_k(x_i) }
$$
Equivale a Recall@k: contamos un acierto cuando la etiqueta verdadera está entre las k primeras predicciones.
2. Cálculo en Python 3.13 #
python --version # ej.: Python 3.13.0
pip install scikit-learn
import numpy as np
from sklearn.metrics import top_k_accuracy_score
proba = model.predict_proba(X_test) # shape: (n_samples, n_classes)
top3 = top_k_accuracy_score(y_test, proba, k=3, labels=model.classes_)
top5 = top_k_accuracy_score(y_test, proba, k=5, labels=model.classes_)
print("Top-3 Accuracy:", round(top3, 3))
print("Top-5 Accuracy:", round(top5, 3))
top_k_accuracy_score recibe probabilidades por clase y devuelve la métrica para el k especificado. Si pasamos labels, la función es robusta ante diferencias en el orden de las clases.
3. Aspectos de diseño #
- Elegir k: Ajusta el valor al número de candidatos que tu interfaz o producto puede mostrar.
- Empates: Cuando hay puntajes idénticos, el ranking puede volverse inestable; usa ordenamientos estables o desempates numéricos.
- Múltiples respuestas correctas: En tareas multietiqueta conviene combinarla con Precision@k y Recall@k.
4. Casos prácticos #
- Sistemas de recomendación: Verifica si el ítem que el usuario elige realmente aparece en la lista sugerida.
- Clasificación de imágenes: En datasets con muchas clases (por ejemplo, ImageNet) es habitual reportar Top-5 Accuracy.
- Búsqueda de información: Evalúa si el documento relevante aparece dentro de los 10 primeros resultados.
5. Comparación con otras métricas de ranking #
| Métrica | Qué captura | Cuándo se usa |
|---|---|---|
| Top-k Accuracy | Si la etiqueta correcta está en k | Cuando basta con que la respuesta esté en la lista |
| NDCG | Relevancia ponderada por posición | Importa la posición exacta dentro del ranking |
| MAP | Promedio de precision@k | Rankings con múltiples elementos relevantes |
| Hit Rate | Sinónimo de Top-k Accuracy | Terminología habitual en recomendadores |
Conclusiones #
- Top-k Accuracy verifica si la respuesta correcta figura entre los candidatos; es sencilla y muy informativa.
top_k_accuracy_scorede scikit-learn permite evaluar distintos valores de k con poco esfuerzo.- Complétala con NDCG o MAP para tener en cuenta la calidad del orden y la presencia de múltiples respuestas relevantes.