Supongamos que he creado un sistema de recomendación que (dado, por ejemplo, clasificaciones de películas o cualquiera de los muchos usuarios) producirá una lista de 10 películas recomendadas para que cada usuario las vea. Imagine que también tengo un gran grupo de elementos de películas, junto con un registro de calificaciones de usuarios junto con películas que realmente decidieron ver. Así que quiero usar este conjunto de datos para evaluar mi sistema.
He visto en la literatura que estas tareas de "sugerir algunos elementos buenos" generalmente se evalúan utilizando precisión, memoria y puntajes F1 (por ejemplo, ver [1] ). Supongo que debería interesarme, en particular, en "precisión a las 10". Sin embargo, no estoy muy seguro de cómo se supone que uno debe calcular estas medidas (o si tienen algún sentido) en el escenario que he descrito anteriormente.
Aparentemente, lo preferido es dividir la muestra al azar en una parte de "entrenamiento" y una "prueba". Y luego alimentar los datos de entrenamiento a mi algoritmo para que pueda llegar a una lista de 10 predicciones.
Ahora, la precisión tiene sentido, puedo verificar a partir de las 10 predicciones cuántos de estos se encuentran realmente en las películas que ve el usuario en los datos de prueba.
Sin embargo, para recordar, si el usuario vio muchas películas en los datos de prueba, digamos 50 más o menos; no hay forma de obtener una "buena" puntuación de recuerdo, simplemente porque mi sistema estaba limitado a producir solo 10 películas y obtendría como máximo 1/5 = 0.2 de recuerdo.
Alternativamente, si limito la prueba solo para adivinar las "próximas 10 películas vistas" del usuario (para que exista la posibilidad de obtener una "recuperación perfecta"), la precisión y la recuperación siempre serán exactamente el mismo número (si el número recomendado y el número relevante para el usuario es el mismo, la precisión y el recuerdo también son siempre los mismos).
¿Estoy haciendo algo mal? ¿O estas métricas simplemente no tienen mucho sentido en el escenario considerado?