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

ALGORITHME ECLAT.

Un algorithme qui trouve les combinaisons de produits achetées ensemble en croisant des listes de tickets. Pour chaque produit, on note les tickets qui le contiennent ; le nombre de tickets communs à deux listes donne directement la fréquence de la paire. Simple, rapide, idéal pour repérer les duos à mettre en pack.

Analyse du panierCombinaisons fréquentesNon superviséRetailNiveau : intermédiaire

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceMêmes combinaisons qu'Apriori, sans hiérarchie métier
InterprétabilitéDes paires et des triplets avec un nombre de tickets
VitesseDes intersections d'ensembles, très rapides en mémoire
Facilité de réglageUn seul seuil essentiel : le support minimum
Tolérance aux données brutesPaniers bruts acceptés, sans quantité ni prix
EN 30 SECONDES

Chaque produit a sa fiche avec la liste des numéros de tickets où il apparaît. Pour savoir si pâtes et sauce tomate vont ensemble, on pose les deux fiches côte à côte et on compte les numéros communs.

1. On retourne le fichier

Au lieu d'une liste de produits par ticket, on stocke une liste de tickets par produit : c'est le format vertical. On écarte les produits sous le support minimum.

2. On croise les listes

L'intersection de deux listes donne les tickets qui contiennent les deux produits. Sa longueur est le support de la paire, sans relire les données.

3. On creuse en profondeur

Si la paire est fréquente, on croise son intersection avec la liste d'un troisième produit, et ainsi de suite. On s'arrête dès que l'intersection passe sous le seuil.

LE CAS MÉTIER

packs promotionnels · grande distribution / drive
EN ENTRÉE

4 000 tickets de caisse

Une ligne par ticket et par produit acheté, 28 produits. On cherche les duos de produits à proposer en pack ou en offre « le deuxième à -50 % ».

EN SORTIE

Une liste de duos classés par lift

Au seuil de 3 % des tickets, Eclat trouve 193 combinaisons fréquentes sur le jeu d'exemple. Sept paires ressortent nettement : bière et chips (lift de 4), pâtes et sauce tomate (3), fromage et vin rouge (2,6), café et biscuits (2,1). Après elles, le lift retombe près de 1.

CE QU'ON MESURE

Le lift pour choisir, le volume pour prioriser

Le lift dit si le duo est vraiment lié ; le nombre de tickets dit combien de clients le pack peut toucher. Pain et beurre ont un lift modeste (1,95) mais 781 tickets : c'est le duo au plus fort potentiel de volume.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Trouver les paires et triplets fréquents pour des packs, des lots ou des offres groupées
  • Données qui tiennent en mémoire, avec un support pas trop bas
  • Besoin d'une méthode simple à expliquer : on compte des tickets communs
  • Recalcul fréquent sur un historique qui change peu

NON

  • Produits très fréquents sur des millions de tickets : les listes deviennent énormes, préférer FP-Growth
  • Besoin de règles orientées « si A alors B » avec une confiance : Apriori ou FP-Growth les donnent directement
  • L'ordre des achats compte : utiliser les motifs séquentiels
  • Mesurer l'effet réel d'un pack sur les ventes : il faut un test en magasin
LES 3 RÉGLAGES QUI COMPTENT

Eclat sort des combinaisons fréquentes, pas des règles. Noms donnés pour R (arules) et pour la version Python écrite à la main.

supp / support_min

Part minimale de tickets contenant la combinaison. Il conditionne à la fois le temps de calcul et le nombre de résultats. 3 % sur 4 000 tickets signifie au moins 120 tickets.

maxlen

Taille maximale des combinaisons. Pour des packs, 2 ou 3 produits suffisent et le calcul est bien plus rapide.

Mesure de tri

Le support seul favorise les produits populaires : pain et eau minérale sortent ensemble par simple fréquence. Trier par lift, ou utiliser ruleInduction() en R pour transformer les combinaisons en règles.

LE CODE MINIMAL

jeu d'exemple : tickets_caisse.csv ↓
# Packs promotionnels : Eclat en R
library(arules)

paniers <- read.transactions("tickets_caisse.csv", format = "single", sep = ",",
                             header = TRUE, cols = c("id_ticket", "produit"))

# Toutes les combinaisons présentes dans au moins 3 % des tickets
frequents <- eclat(paniers, parameter = list(supp = 0.03, maxlen = 3),
                   control = list(verbose = FALSE))
cat("Combinaisons fréquentes :", length(frequents), "\n")

# Paires de produits, avec leur lift : observé / attendu si les achats étaient indépendants
paires <- frequents[size(frequents) == 2]
quality(paires)$lift <- interestMeasure(paires, "lift", transactions = paniers)
inspect(head(sort(paires, by = "lift"), 8))

QUESTIONS FRÉQUENTES

Que signifie Eclat ?

Eclat signifie Equivalence CLAss Transformation. Les combinaisons qui partagent le même préfixe forment une classe d'équivalence, traitée indépendamment des autres. C'est ce qui permet d'explorer les combinaisons en profondeur et de paralléliser le calcul.

Quelle différence entre Eclat et Apriori ?

Apriori stocke les données ticket par ticket et les relit pour compter chaque niveau de combinaisons. Eclat stocke, pour chaque produit, la liste de ses tickets et obtient le support par intersection. Les combinaisons trouvées sont les mêmes, Eclat est généralement plus rapide.

Eclat produit-il des règles d'association ?

Pas directement : il sort des combinaisons fréquentes avec leur support. On calcule ensuite les règles et leur confiance à partir de ces supports, par exemple avec ruleInduction() dans le package R arules.

LES ALGOS VOISINS

à comparer avant de choisir
l'approche horizontale

Apriori

Relit les tickets à chaque niveau pour compter les candidats. Plus lent, mais produit directement des règles avec confiance.

Voir la fiche →
l'alternative par arbre

FP-Growth

Compresse les tickets dans un arbre. Plus économe en mémoire quand les produits fréquents sont nombreux.

Voir la fiche →
quand l'ordre compte

Motifs séquentiels (PrefixSpan)

Cherche les enchaînements d'achats ou de pages dans le temps, et non les produits d'un 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 →