Une règle d’association, c’est quoi ?
Une règle d’association dit que les clients qui achètent un article A achètent aussi un article B, par exemple pain → beurre. On la juge avec deux mesures : la confiance et le lift.
Le lift évite de croire une règle qui reflète seulement la popularité des articles.
À la fin de cette leçon
Remarque
Je peux calculer la confiance et le lift d’une règle pour dire si elle est utile.
Mots clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Règle d’association | une phrase « si A, alors souvent B » tirée des paniers | pain → beurre |
| Antécédent | l’article A, à gauche de la flèche | |
| Conséquent | l’article B, à droite de la flèche | |
| Confiance | la part des paniers avec A qui contiennent aussi B | |
| Lift | la confiance divisée par le support de B |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
La confiance part des paniers avec A
Dans la règle pain → beurre, pain est l’antécédent et beurre le conséquent. La flèche ne veut pas dire « cause » : elle veut dire « souvent accompagné de ».
La confiance répond à une question : parmi les paniers qui contiennent le pain, quelle part contient aussi le beurre ? On ne regarde que ces paniers-là.
Exemple travaillé : pain vers beurre
| Ce qu’on compte | Paniers | Calcul |
|---|---|---|
| Total des paniers | 8 | donné |
| Paniers avec pain | 5 | les paniers 1, 2, 4, 5 et 7 |
| Paniers avec pain et beurre | 4 | les paniers 1, 2, 4 et 7 |
| Confiance de pain → beurre | 0,8 | 4 divisé par 5 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Le lift compare au hasard
Le beurre est dans 5 paniers sur 8 : son support est 0,625. Même sans le pain, un panier choisi au hasard le contient donc 6 fois sur 10 environ.
Le lift divise la confiance par ce support. Au-dessus de 1, A et B vont plus souvent ensemble que le hasard. Près de 1, ils n’ont pas de lien. Sous 1, ils s’évitent.
Exemple travaillé : trois règles
| Règle | Confiance | Support du conséquent | Lift | Lecture |
|---|---|---|---|---|
| pain → beurre | 0,8 | 0,625 | 1,28 | un peu plus que le hasard |
| confiture → beurre | 1 | 0,625 | 1,6 | nettement plus que le hasard |
| pain → lait | 0,6 | 0,625 | 0,96 | aucun lien |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Calculer la confiance et le lift
paniers = [
["pain", "beurre", "lait"],
["pain", "beurre", "confiture"],
["lait", "yaourt"],
["pain", "beurre", "lait", "confiture"],
["pain", "lait"],
["beurre", "confiture"],
["pain", "beurre"],
["lait", "yaourt", "sucre"],
]
a = "pain"
b = "beurre"
avec_a = 0
avec_b = 0
avec_les_deux = 0
for panier in paniers:
if a in panier:
avec_a = avec_a + 1
if b in panier:
avec_b = avec_b + 1
if a in panier and b in panier:
avec_les_deux = avec_les_deux + 1
confiance = avec_les_deux / avec_a
support_b = avec_b / len(paniers)
print("confiance", round(confiance, 2))
print("lift", round(confiance / support_b, 2))
# Changez a et b : essayez confiture puis beurre, puis pain et lait.
Une erreur fréquente
Attention
Beaucoup pensent qu’une confiance de 0,9 fait une bonne règle. Mais si 90 % de tous les paniers contiennent déjà B, la règle A → B n’apprend rien : son lift vaut 1. Regardez toujours la confiance et le lift ensemble.
Dans le labo, deux règles sur les jours
Reprenons le fichier hires.csv, où un jour est « plein » à 300 locations ou plus. La commande suivante juge deux règles : week-end → plein et pluie → plein.
Pour chaque règle, elle affiche quatre nombres entre parenthèses. D’abord le nombre de jours de l’antécédent, puis combien de ces jours sont pleins. Viennent ensuite la confiance et le lift. Elle ne modifie aucun fichier.
Juger deux règles sur les jours
docker exec jupyter python3 -c "import csv; L = list(csv.DictReader(open('hires.csv'))); n = len(L); P = sum(1 for r in L if int(r['hires']) >= 300); W = [r for r in L if r['weekday'] in ('Sat', 'Sun')]; R = [r for r in L if r['weather'] == 'rainy']; print([(len(g), k, round(k / len(g), 3), round(k / len(g) / (P / n), 2)) for g in (W, R) for k in [sum(1 for r in g if int(r['hires']) >= 300)]])"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.
Pour aller plus loin
Dans votre carnet, jugez la règle soleil → plein sur hires.csv. Calculez sa confiance et son lift.
Comparez avec week-end → plein, puis dites quelle règle aide le plus un loueur à décider d’ouvrir un second guichet.