Accueil / Factory / Algos ML / FP-Growth — factory / algos ML / règles d'association

ALGORITHME FP-GROWTH.

Le même résultat qu'Apriori, obtenu beaucoup plus vite. FP-Growth compresse tous les tickets dans un arbre de préfixes, puis y lit directement les combinaisons fréquentes, sans générer et compter des milliers de candidats. C'est lui qu'on utilise quand le catalogue est large ou qu'on veut descendre à un support bas pour voir les produits de niche.

Analyse du panierRègles d'associationGros volumesNon superviséNiveau : intermédiaire

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceMêmes combinaisons qu'Apriori, donc mêmes limites de fond
InterprétabilitéSortie identique à Apriori : des règles lisibles
VitesseDeux passages sur les données, sans génération de candidats
Facilité de réglageMêmes seuils à calibrer, et beaucoup de règles à trier
Tolérance aux données brutesPaniers bruts acceptés, sans quantité ni prix
EN 30 SECONDES

Plutôt que de relire les 4 000 tickets à chaque question, on les range une fois pour toutes dans un classeur à onglets où les tickets qui commencent pareil partagent le même chemin. Ensuite, on lit les réponses dans le classeur.

1. On compte chaque produit une fois

Premier passage : fréquence de chaque produit. Les produits sous le support minimum sont écartés, les autres triés du plus au moins fréquent.

2. On construit l'arbre FP

Second passage : chaque ticket, réordonné, est inséré dans un arbre. Les tickets qui partagent les mêmes produits fréquents partagent les mêmes branches, avec un compteur. L'arbre est en général bien plus compact que les tickets de départ.

3. On lit les combinaisons dans l'arbre

Pour chaque produit, on isole les branches qui y mènent et on y cherche récursivement les combinaisons fréquentes. Les règles se calculent ensuite comme avec Apriori.

LE CAS MÉTIER

produits de niche · grande distribution / e-commerce
EN ENTRÉE

4 000 tickets de caisse, support bas

Le même type de fichier qu'une analyse du panier classique, mais on descend à 1 % de support pour voir les produits peu vendus : couches, lingettes, parmesan. Sur le jeu d'exemple, cela fait près de 800 combinaisons fréquentes.

EN SORTIE

Les associations fortes, même rares

On ne garde que les règles à une condition, avec une confiance d'au moins 50 % et un lift d'au moins 3. Il en reste 5, dont « couches → lingettes » : 71 % des acheteurs de couches prennent des lingettes, 15 fois plus que la moyenne, sur 67 tickets seulement. Avec un support à 5 %, cette règle n'apparaît pas.

CE QU'ON MESURE

Le lift et le volume en tickets

Un lift élevé sur 20 tickets peut être un hasard. On regarde donc le lift et le nombre de tickets concernés ensemble, puis on confirme sur une autre période avant d'agir.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Catalogues larges (des milliers de références) ou des millions de transactions
  • Support bas pour repérer les associations sur des produits peu vendus
  • Remplacement direct d'Apriori quand il devient trop lent
  • Calculs réguliers à industrialiser (Spark MLlib propose FP-Growth en distribué)

NON

  • Quelques milliers de tickets et un support raisonnable : Apriori suffit et s'explique plus facilement
  • L'ordre des achats compte : utiliser les motifs séquentiels
  • Recommandation personnalisée : préférer le filtrage collaboratif
  • Support si bas que l'arbre ne tient plus en mémoire : filtrer les produits ou échantillonner
LES 3 RÉGLAGES QUI COMPTENT

Mêmes réglages qu'Apriori : FP-Growth change la vitesse, pas le résultat. Noms donnés pour R (arules, fim4r) et Python (mlxtend).

support / min_support

Le réglage qui pèse le plus sur le temps de calcul. FP-Growth permet de le descendre à 1 % ou moins, mais le nombre de règles grimpe vite : il faut filtrer ensuite.

confidence et lift

Filtres appliqués aux règles une fois les combinaisons trouvées. Combiner une confiance minimale (50 %) et un lift minimal (2 ou 3) élimine l'essentiel du bruit.

zmax / max_len

Taille maximale des combinaisons. La limiter à 3 ou 4 produits accélère le calcul et évite des règles trop spécifiques pour être utiles.

LE CODE MINIMAL

jeu d'exemple : tickets_caisse.csv ↓
# Produits de niche : FP-Growth en R
library(arules)

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

# FP-Growth via l'interface fim4r d'arules (installe au besoin le package fim4r, hors CRAN)
# Support bas (1 %, soit 40 tickets) pour ne pas rater les produits peu vendus
regles <- fim4r(paniers, method = "fpgrowth", target = "rules",
                support = 0.01, confidence = 0.5, zmin = 2)
cat("Règles trouvées :", length(regles), "\n")

# Règles simples (un seul produit en condition) et fortes (lift >= 3)
fortes <- regles[size(lhs(regles)) == 1 & quality(regles)$lift >= 3]
inspect(sort(fortes, by = "lift"))

QUESTIONS FRÉQUENTES

Quelle différence entre FP-Growth et Apriori ?

Les deux trouvent exactement les mêmes combinaisons fréquentes. Apriori génère et compte des candidats à chaque niveau, en relisant les données. FP-Growth lit les données deux fois, les compresse dans un arbre et en extrait les combinaisons sans candidats, ce qui le rend beaucoup plus rapide sur de gros volumes.

Que veut dire FP dans FP-Growth ?

FP signifie Frequent Pattern, motif fréquent. L'arbre FP (FP-tree) est la structure compressée qui stocke les tickets, et « growth » désigne la façon dont les motifs sont agrandis à partir de cet arbre.

Peut-on utiliser FP-Growth sur de très gros volumes ?

Oui, c'est son intérêt. Spark MLlib en propose une version distribuée, qui répartit le calcul sur plusieurs machines. La limite pratique vient du support : très bas, il produit trop de règles pour être exploitables.

LES ALGOS VOISINS

à comparer avant de choisir
l'algorithme historique

Apriori

Même résultat, plus simple à expliquer, mais lent quand le support baisse ou que le catalogue grandit.

Voir la fiche →
l'autre alternative rapide

Eclat

Croise des listes de tickets au lieu de construire un arbre. Souvent aussi rapide, très bien adapté aux combinaisons fréquentes.

Voir la fiche →
pour personnaliser

Filtrage collaboratif

Recommande à chaque client selon les clients qui lui ressemblent, au lieu de règles valables pour tous.

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 →