Supposons que j'ai construit un système de recommandation qui (étant donné, par exemple, le classement des films ou celui de nombreux utilisateurs) produira une liste de 10 films recommandés pour chaque utilisateur à regarder. Imaginez que j'ai également un grand nombre d'articles de film, ainsi qu'un journal des notes des utilisateurs ainsi que des films qu'ils ont effectivement décidé de regarder. Je souhaite donc utiliser cet ensemble de données pour évaluer mon système.
J'ai vu dans la littérature que ces tâches "suggérer de bons éléments" sont généralement évaluées en utilisant la précision, le rappel et les scores F1 (par exemple, voir [1] ). Je suppose que je devrais m'intéresser, en particulier, à la "précision à 10". Cependant, je ne sais pas trop comment on est censé calculer ces mesures (ou si elles ont un sens) dans le scénario que j'ai décrit ci-dessus.
Apparemment, la chose préférée à faire est de diviser au hasard l'échantillon en une partie "formation" et une partie "test". Et puis alimenter les données d'entraînement à mon algorithme afin qu'il puisse proposer une liste de 10 prédictions.
Maintenant, la précision est logique, je peux vérifier à partir des 10 prédictions combien d'entre elles sont réellement trouvées dans les films regardés par l'utilisateur dans les données de test.
Cependant, pour rappel, si l'utilisateur a regardé beaucoup de films dans les données de test, disons 50 environ; il n'y a aucun moyen d'obtenir un "bon" score de rappel, simplement parce que mon système était contraint de produire seulement 10 films et que j'obtiendrais tout au plus un 1/5 = 0,2 de rappel.
Alternativement, si je contrains le test à ne deviner que les "10 prochains films regardés" de l'utilisateur (afin qu'il y ait une chance d'obtenir un "rappel parfait"), alors la précision et le rappel seront toujours exactement le même nombre (si le nombre recommandé et le nombre pertinent pour l'utilisateur est le même, la précision et le rappel sont également toujours les mêmes).
Est-ce que je fais quelque chose de mal? Ou ces mesures n'ont tout simplement pas beaucoup de sens dans le scénario considéré?