Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Précision et rappel d’une recherche

Après cette leçon: Je peux juger une recherche avec la précision et le rappel.

Leçon de 55 min1 commandeLab JupyterLab de science des données : pandas, Matplotlib et scikit-learn dans le navigateur

Comment savoir si une recherche est bonne ?

La précision et le rappel sont deux mesures de la qualité d’une recherche. La précision dit quelle part des résultats est utile, le rappel quelle part des documents utiles a été trouvée.

Un moteur qui rend tous les documents ne rate rien, mais ne sert à rien. Un moteur qui rend un seul bon document est exact, mais manque tout le reste. Il faut deux nombres.

À la fin de cette leçon

Remarque

Je peux juger une recherche avec la précision et le rappel.

Mots clés

MotCe que ça veut dire
Document pertinentun document réellement utile pour la question
Document renduun document que la recherche a renvoyé
Précisionla part des documents rendus qui sont pertinents
Rappella part des documents pertinents qui ont été rendus
Précision à kla précision sur les k premiers résultats

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Quatre cas décrivent une recherche

Pour chaque document, on se demande deux choses : la recherche l’a-t-elle rendu, et est-il pertinent ? Cela donne quatre cas.

Les bons résultats sont rendus et pertinents. Les faux résultats sont rendus mais inutiles. Les oubliés sont pertinents mais pas rendus. Le reste n’est ni rendu ni pertinent.

Exemple travaillé : une recherche sur mille fiches

CasNombre de fichesLecture
Rendues et pertinentes6Les bons résultats
Rendues, pas pertinentes2Les faux résultats
Pertinentes, pas rendues3Les oubliées
Ni l’un ni l’autre989Le reste de la collection

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Précision et rappel ont deux diviseurs différents

La précision est le nombre de bons résultats divisé par le nombre de documents rendus. Ici : 6 sur 8, soit 0,75.

Le rappel est le nombre de bons résultats divisé par le nombre de documents pertinents. Ici : 6 sur 9, soit environ 0,67. Un diviseur nul donne 0.

Calculer précision et rappel

Commande
docker exec jupyter python3 -c 'print(6 / 8, round(6 / 9, 2))'

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

La précision à k regarde les premiers résultats

Dans la vie, on lit rarement au-delà de la première page. La précision à k calcule la précision sur les k premiers résultats du classement.

Elle récompense un moteur qui met les bons documents en tête. Le rappel, lui, ne change pas avec l’ordre.

Exemple travaillé : la précision à k

kLes k premiersPertinents parmi euxPrécision à k
1[2]11 / 1 = 1
2[2, 0]22 / 2 = 1
3[2, 0, 1]22 / 3 = 0,67
4[2, 0, 1, 3]22 / 4 = 0,5

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Une erreur fréquente

Attention

Beaucoup pensent qu’une bonne précision suffit à juger un moteur. Un moteur qui rend un seul bon document a une précision de 1 et peut avoir un rappel de 0,01. Il faut toujours regarder les deux nombres ensemble.

Compter les bons résultats

Code: python
rendus = [0, 1, 2, 4]
pertinents = [0, 2, 3, 4, 5]
bons = 0
for numero in rendus:
    if numero in pertinents:
        bons = bons + 1
print(bons)
print(bons / len(rendus))
print(bons / len(pertinents))
# Retirez le numéro 4 de la liste rendus, puis relancez. Que devient chaque nombre ?

Pour aller plus loin

Dans un carnet de JupyterLab, faites deux recherches sur vos six phrases et notez à la main les documents réellement utiles. Calculez la précision et le rappel de chacune.

Une recherche OU a-t-elle plus de rappel qu’une recherche ET ? Et moins de précision ?

À propos de ce labo et de sa source: Lab JupyterLab de science des données : pandas, Matplotlib et scikit-learn dans le navigateur

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.