Accueil / Factory / Algos ML / Apriori — factory / algos ML / règles d'association

ALGORITHME APRIORI.

« Qui achète du pain achète du beurre. » Apriori parcourt des milliers de tickets de caisse et en sort des règles « si A, alors souvent B », chiffrées. C'est l'algorithme historique de l'analyse du panier, utilisé pour l'implantation en rayon, les promotions croisées et les recommandations simples.

Analyse du panierRègles d'associationNon superviséRetailNiveau : débutant

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceTrouve toutes les règles fréquentes, sans hiérarchie métier
InterprétabilitéDes règles « si A alors B » que tout le monde lit
VitesseRapide à support élevé, lent quand on le baisse
Facilité de réglageDeux seuils à calibrer, sinon trop ou trop peu de règles
Tolérance aux données brutesAccepte des paniers bruts, mais aucune quantité ni aucun prix
EN 30 SECONDES

Un chef de rayon qui feuillette 4 000 tickets et note ce qui revient ensemble. Sa règle d'or : inutile de chercher les combinaisons contenant un produit rare, elles seront rares aussi.

1. On compte les produits fréquents

On garde les produits présents dans au moins x % des tickets : c'est le support minimum.

2. On agrandit les combinaisons pas à pas

Les paires ne sont construites qu'à partir de produits fréquents, les triplets qu'à partir de paires fréquentes, et ainsi de suite. C'est le principe « a priori » : un sous-ensemble d'une combinaison fréquente est forcément fréquent.

3. On en tire des règles

Pour chaque combinaison fréquente, on teste les règles « si A alors B ». On garde celles dont la confiance (part des tickets avec A qui contiennent aussi B) dépasse un seuil, et on les classe par lift.

LE CAS MÉTIER

analyse du panier · grande distribution / e-commerce
EN ENTRÉE

4 000 tickets de caisse

Un fichier au format long : une ligne par ticket et par produit acheté, 28 produits alimentaires et ménagers. Ni prix, ni quantité : seulement la présence du produit dans le panier.

EN SORTIE

Une quinzaine de règles chiffrées

Avec un support de 5 % et une confiance de 50 %, on obtient 15 règles sur le jeu d'exemple. Par exemple, 66 % des acheteurs de bière prennent aussi des chips, soit 4 fois plus que la moyenne des clients. Le rayon et le service promo s'en servent pour l'implantation et les offres groupées.

CE QU'ON MESURE

Le lift avant la confiance

La confiance seule trompe : le pain est dans 35 % des tickets, donc beaucoup de règles « → pain » ont une confiance correcte sans aucun lien réel. Le lift compare à ce hasard : 1 signifie aucun lien, 4 signifie quatre fois plus souvent qu'attendu. Au final, on valide par un test en magasin.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Tickets de caisse ou paniers e-commerce, avec quelques dizaines à quelques milliers de produits
  • Préparer l'implantation en rayon, des offres groupées ou des ventes croisées
  • Besoin de règles lisibles à présenter à des équipes commerciales
  • Première exploration d'un historique de transactions

NON

  • Catalogue très large et support très bas : préférer FP-Growth ou Eclat, bien plus rapides
  • L'ordre des achats compte (ce qu'on achète après) : utiliser les motifs séquentiels
  • Recommandation personnalisée client par client : préférer le filtrage collaboratif
  • Prouver qu'une promotion croisée augmente les ventes : une règle est une corrélation, il faut un test A/B
LES 4 RÉGLAGES QUI COMPTENT

Noms donnés pour R (arules) et Python (mlxtend). Tout se joue sur les seuils.

supp / min_support

Part minimale de tickets contenant la combinaison. Trop haut, on ne voit que les évidences ; trop bas, des milliers de règles et un calcul qui explose. Commencer autour de 1 à 5 % et ajuster.

conf / min_threshold

Confiance minimale : part des tickets avec A qui contiennent aussi B. 50 % est un point de départ courant. Elle dépend du sens de la règle : A → B et B → A n'ont pas la même confiance.

Lift

Confiance divisée par la fréquence de B. On filtre sur un lift supérieur à 1, souvent 1,5 ou 2, pour éliminer les règles qui ne reflètent que la popularité d'un produit.

minlen / maxlen, max_len

Taille des combinaisons. minlen = 2 évite les règles sans condition ; limiter la taille maximale à 3 ou 4 garde des règles actionnables et accélère le calcul.

LE CODE MINIMAL

jeu d'exemple : tickets_caisse.csv ↓
# Analyse du panier : Apriori en R
library(arules)

# Format long (un produit par ligne) -> un panier par ticket
paniers <- read.transactions("tickets_caisse.csv", format = "single", sep = ",",
                             header = TRUE, cols = c("id_ticket", "produit"))
summary(paniers)

# Règles présentes dans au moins 5 % des tickets, vraies au moins une fois sur deux
regles <- apriori(paniers, parameter = list(supp = 0.05, conf = 0.5, minlen = 2),
                  control = list(verbose = FALSE))
cat("Nombre de règles :", length(regles), "\n")

# Les plus fortes d'abord : le lift mesure le gain par rapport au hasard
regles <- sort(regles, by = "lift")
inspect(head(regles, 8))

QUESTIONS FRÉQUENTES

Quelle différence entre support, confiance et lift ?

Le support est la part des tickets qui contiennent la combinaison. La confiance est la part des tickets avec A qui contiennent aussi B. Le lift divise la confiance par la fréquence de B : au-dessus de 1, A et B sont achetés ensemble plus souvent que par hasard.

Comment choisir le support minimum dans Apriori ?

On part d'un support qui correspond à un volume utile pour le métier, par exemple 1 % des tickets, puis on ajuste selon le nombre de règles obtenues. Un support trop bas fait exploser le temps de calcul et produit des règles fragiles.

Apriori ou FP-Growth ?

Les deux trouvent exactement les mêmes combinaisons fréquentes. FP-Growth est beaucoup plus rapide sur de gros volumes ou avec un support bas. Apriori reste le plus simple à expliquer et suffit sur quelques milliers de tickets.

LES ALGOS VOISINS

à comparer avant de choisir
le même résultat, plus vite

FP-Growth

Compresse les tickets dans un arbre et évite de générer les candidats. Indispensable quand on baisse le support.

Voir la fiche →
l'approche par listes de tickets

Eclat

Stocke pour chaque produit la liste des tickets qui le contiennent et croise ces listes. Rapide pour les combinaisons fréquentes.

Voir la fiche →
quand l'ordre compte

Motifs séquentiels (PrefixSpan)

Cherche ce qui est acheté après quoi, d'une visite à l'autre, et non dans le même panier.

Voir la fiche →
— formation

Passer de la fiche à la pratique

Dataistudio forme les équipes au machine learning et à l'IA, sur des cas concrets.

Voir les formations →