Vous êtes sur la page 1sur 6

Inf2033

Projet/TP n° 1: Règles d’Association


Professeur Maurice TCHUENTE

On considère un ensemble d'items I = {i1, i2, … , in}. Un sous-ensemble de I est appelé itemset. On
considère un ensemble d'itemsets ou base de transactions T = {t1, t2, … , tm}. Un itemset A est dit fréquent
dans T, s'il est contenu dans un nombre de transactions de T supérieur ou égal à un seuil s.

Phase I : Trois premières semaines consacrées :


 D’abord à la compréhension du sujet, au choix des structures de données et des algorithmes ;
 Puis à la conception des algos (ou compréhension des algos trouvés dans la littérature), et à la
programmation (ou compréhension/configuration des logiciels trouvés dans la littérature),
suivie des tests.

1 - Donner des exemples d'application des itemsets fréquents pour :


o le rangement de produits dans un entrepôt de vente par correspondance pour minimiser les
déplacements lors de la collecte des articles correspondant aux commandes des clients
o le rangement de produits dans les rayons d'un supermarché pour obliger les clients
consommant certains produits à voir d’autres produits
o la conception de catalogues.

2 - Une règle d'association ‘’certaine’’ X ⇒ Y entre deux itemsets X et Y, signifie que toute transaction
qui contient X contient aussi Y (Par exemple, toute personne qui achète X achète aussi Y).

 Donner des exemples d'application des règles d'association certaines pour la recommandation sur
un site de vente en ligne.

3 – Règles d’association ‘’canoniques’’


3.1 Si X ⇒ Y et X ⊂ Z, que peut-on déduire comme relation entre Z et Y ?
3.2 Donner une propriété analogue basée sur la partie droite Y de la règle X ⇒ Y.
3.3 Déduire, par rapport aux parties gauches X, les règles X ⇒ Y qui sont les noyaux à partir desquels on
peut obtenir toutes les règles d'association.
3.4 Déduire, par rapport aux parties droites Y, les règles X ⇒ Y qui sont les noyaux à partir desquels on
peut obtenir toutes les règles d'association.

4 - Que peut-on dire des règles X ⇒ Y et Xa ⇒ Ya

5 - Déduire des questions 3 et 4, deux contraintes qu’on peut imposer aux règles d'association. Dire
pourquoi les règles vérifiant ces contraintes peuvent être qualifiées de canoniques.

Le calcul des règles d’association entraîne des frais liés à :


 la mobilisation d’un informaticien pour la conception du logiciel de découverte des règles
 l’utilisation des ressources informatiques pour la mise en œuvre du logiciel.

6 - Pour que ce calcul vaille la peine, il faut que ces coûts puissent être amortis. Proposer un critère qui
modélise la valeur économique d’une règle d’association certaine.

7 – Sémantique des règles d’association


7.1 Dire pourquoi la définition d’une règle d’association qui utilise l'expression « toute transaction qui
contient X » n’est pas raisonnable dans un contexte applicatif ?
Indication : Donner un exemple où cette définition n’est pas vraie alors que le fait de savoir qu’un client
achète ensemble les articles de X permet de le prospecter avantageusement pour acheter les articles de Y.

Dans la suite, on dira que XY, XY = , est une règle d’association de support s (entier naturel) et
de confiance c (comprise entre 0 et 1), si
 Freq(X  Y)  s
 Freq(X  Y)/Freq(X)  c
Freq(A) désigne le nombre de transactions contenant l’itemset A.

Dire pourquoi ces critères permettent de mesurer la qualité, d’une règle d’association.

7.2 Expliquer cette définition

Objectif du travail pratique de la phase I :


- I.1 Donner une description informelle des données, algorithmes et des résultats à produire
- I.2 Spécification (cf cours d’introduction au GL). Proposer des structures de représentation pour :
 les données (avec une brève justification : espace mémoire, temps d’exécution des algos,
commodité, …) et
 les résultats
- I.3 Retrouver (vous pouvez vous faire aider par des aînés de L3, M1, M2 ou D) :
 des benchmarks et décrire les formats des données et des résultats
 des algos dans des livres ou revues scientifiques (cf aussi la biblio fournie pour ce TP)

Approche pour le calcul des règles de support au moins s et de confiance au moins c


Etape 1 : On calcule les itemsets fréquents L, c-à-d dont le support (ou fréquence) dépasse le seuil s.
Etape 2 : Pour chaque itemset fréquent L, on calcule les règles de la forme
XY, telles que = X  Y = L, XY =  et Freq(L)/Freq(X)  c.

On s'intéresse maintenant à l’étape 1 consacrée au calcul de tous les itemsets ayant une fréquence au moins
égale à s. On note Lk les itemsets fréquents de taille k.

On considère pour l'étape I.1, l'approche “brute force” qui consiste à examiner systématiquement
l'ensemble des parties de I (noté 2I ), et à comparer ces parties aux éléments de T pour déterminer les
itemsets fréquents:

8 - Décrire une méthode très simple pour l’énumération des parties de I (sans vous soucier de l’efficacité).

9 - Sachant que l’ensemble T des transactions ne peut pas tenir en mémoire centrale, lequel des deux
schémas ci-dessous est le plus efficace ?

(Schéma 1) (Schéma 2)
Initialisation Initialisation
Pour A ∈ 2I faire Pour t ∈T faireT faire
Pour t ∈T faireT faire Pour A ∈T faire2I faire
début début
… …
fin ; fin ;

10 - On suppose que X n’est pas fréquent, et X  Z. Que peut-on dire de Z.


2 Projet_Règles_Association
N.B. : Cette propriété est appelée anti monotonie.

11 – Déduire qu’il n'est pas nécessaire de balayer toutes les parties de I pour déterminer les itemsets
fréquents.

On suppose connu l‘ensemble Lk-1 des itemsets fréquents de taille k-1.

On remarque que tout sous-ensemble d’un itemset fréquent Lk est aussi fréquent. Cette propriété
appelée anti-monotonie se formule aussi en disant que si X n’est pas fréquent, alors tout sous-
ensemble Y contenant X n’est pas fréquent.

12 - Donner une condition nécessaire (mais non suffisante) basée sur k tests d’appartenance à Lk-1, pour
qu’un itemset X de taille k, soit fréquent.

13 - Montrer que, par utilisation de l’anti monotonie, on peut pour le calcul de Lk, générer par jointure à
partir de Lk-1, un ensemble PCk de pré-candidats de taille k et donc réduire l’ensemble des itemsets de taille
k pour lesquels on calcule les fréquences.

Indication : Tout pré-candidat doit vérifier les k conditions mises en évidence dans la question 12.

14 – Intérêt des prétraitements

14.a Dire comment filtrer les candidats PCk pour obtenir un ensemble de candidats Ck plus petit que PCk,
dont les itemsets vérifient les k conditions de la question 12.

Le calcul des pré-candidats et des candidats a évidemment un coût qu’il faut comparer aux parcours de T
qu’on économise.

14.b Faire une analyse pour faire ressortir l’intérêt de passer par PCk et Ck pour calculer Lk.

Phase II : Trois dernières semaines consacrées à la programmation et aux tests

15 – Dire comment procéder pour le calcul des pré-candidats lorsque Lk-1 est organisé en liste chaînée.

16 - Proposer une structure de données en arbre (trie) qui facilite le calcul des pré-candidats.

17 – Donner la complexité en nombre d’opérations, du calcul de l’ensemble PCk des pré-candidats de taille
k. N.B. On précisera le choix des paramètres utilisés pour cette évaluation.

18 – Dire pourquoi il est avantageux d’organiser Lk-1 dans une table de hachage pour faciliter le filtrage des
pré-candidats en vue d’obtenir les candidats ?

19 - Donner la complexité en nombre d’opérations, du calcul de l’ensemble Ck des candidats de taille k.

Les deux astuces introduites plus haut sont à la base de l'algorithme Apriori.

20 - Expliquer les algorithmes ci-dessous pour le calcul des itemsets fréquents et des règles d’association
(R. Agrawal et R. Srikant).

21 - Donner la complexité en nombre d’opérations de Apriori avec les structures de données de votre
choix, en fonction des tailles de Lk-1, PCk, Ck, M = T (taille de T), m = T, n = I.
3 Projet_Règles_Association
On désire maintenant optimiser le programme.

22 - On désire réduire le nombre d’itemsets à traiter tout en maintenant intacte la capacité à détecter tous
les itemsets fréquents. Pour cela on considère deux itemsets X et Y fréquents et de même fréquence, tels
que X  Y. De ces deux itemsets, lequel faut-il conserver ?

23 - On appelle itemset fermé un itemset maximal pour l’inclusion, parmi les itemsets de même
fréquence. Montrer que le plus petit itemset fermé contenant X est l’intersection de toutes les transactions
contenant X.

24 - Montrer que les itemsets fréquents fermés permettent de déduire tous les itemsets fréquents, avec
leurs fréquences.

25 - Comment pourrait-on définir la notion d’itemset fréquent maximal ?

26 - Montrer que les itemsets fréquents maximaux permettent de déduire tous les itemsets fréquents, mais
sans leurs fréquences.

27 - Donner un algorithme pour le calcul des itemsets fréquents maximaux

28 - Donner pour l'exemple ci-dessous (on prendra le seuil s = 2) tiré de l’article de Uno et al. :
o le treillis des parties de I
o les itemsets fréquents, les itemsets fréquents maximaux, les itemsets fréquents fermés.

N° de transaction Transaction
1  Calcul des règles d’association

2  On s’intéresse au calcul des règles


d’association XY telles que X  Y =
3 b
L, L étant un itemset fréquent.
4 
Il est clair que plus X est grand (plus le
5 d,e client achète d’articles) plus L – X est
petit, et il y a de chances d’acheter Y = L
– X.

29 – Donner une règle d’association triviale (mais sans intérêt).

30 – Expliquer comment on peut à partir de la règle XY, générer de manière récursive toutes les règles
de partie gauche incluse dans X, en diminuant au fur et à mesure la partie gauche au profit de la partie
droite. N.B. On pourra illustrer par un arbre

31 – Donner la procédure récursive correspondante

32 – Comment s’obtient alors la génération de toutes les règles d’association associées à L ?

33 – Expliquer comment on peut à partir de la règle XY, générer de manière récursive toutes les règles
dont la partie droite contient Y, en augmentant au fur et à mesure la partie droite au détriment de la partie
gauche.

4 Projet_Règles_Association
N.B. On pourra illustrer par un arbre.

31 – Donner la procédure récursive correspondante.

32 – Dire pourquoi, dans la génération de règles associées à L, la propriété d’anti monotonie s’applique
aux parties droites de règles mais pas aux parties gauches.

33 - Donner un algorithme Récursif pour le calcul des règles d’association obtenues à partir d’une règle
XY par augmentation progressive de la partie droite, et qui utilise Apriori_Gen.

On s’intéresse maintenant à l’algorithme efficace LCM (Linear Closed itemsets Mining) proposé par
Takeaki Uno et al. pour le calcul des itemsets fréquents fermés.

34 – Lire dans cet article la méthode de construction d’un ensemble infini d’instances avec n items et une
base contenant m transactions, pour lesquelles il y a O(m2) itemsets fréquents fermés et un nombre
d’itemsets fréquents exponentiel en n et m. Vous exposerez ensuite de manière abrégée, l’idée simple qui a
guidé cette construction.

L’algorithme de Takeaki Uno et al. a été baptisé LCM (Linear time Closed pattern Miner). Il calcule les
itemsets fréquents fermés en temps linéaire, c-à-d en temps O(F), où F désigne l’ensemble des itemsets
fréquents fermés. On note dans la suite :

 I = 1, 2, … , n l’ensemble des items


 T(X) l’ensemble des transactions contenant un itemset X
 X(i) = X 1..i le préfixe d’ordre i de X
 Clo(X) le plus petit fermé contenant X (c’est la fermeture de X au sens mathématique, par rapport à
la notion de fermé)

35 - Montrer que Clo(X) est l’intersection de toutes les transactions contenant X, et indiquer un exemple en
mathématiques, où la notion de fermé se définit de manière analogue.

Le principe de LCM est de générer successivement et uniquement les itemsets fermés. A cet effet on
appelle noyau d’un itemset fermé P, l’item Kernel(P) = min j : Clo(P(j)) = P . Il correspond à l’ordre du
plus petit préfixe de P dont la fermeture est P.

LCM procède ainsi qu’il suit pour générer l’ensemble les itemsets fermés contenant un itemset fermé P :

Pré-condition : aucune

Procedure LCM (P : itemset fermé)


Début
Début
Enregistrer (P) ;
Pour i := Kernel(P) +1 à n faire
si i  P alors
Début Q := Clo(P  i)
Si Q(i-1) = P(i-1) alors la fermeture de Pi ne crée pas d’élément inférieur à i
LCM(Q) générer tous les fermés contenant Q 
Fin
Fin
Fin ;

5 Projet_Règles_Association
36 – Donner l’appel principal qui génère tous les itemsets fréquents fermés

37 – Donner deux propriétés qu’il suffit de démontrer pour établir que LCM résout le problème en temps
linéaire ?

38 - Appliquer LCM à l'exemple de la question 28

39 : Dans la pratique, un ticket de caisse contient pour chaque produit, le nombre d’articles achetés.
Montrer qu’on peut traiter cette information supplémentaire (recopier au besoin à partir d’un document que
vous aurez trouvé sur internet) :

 soit en définissant une nouvelle famille d’items atomiques, ce qui permet de maintenir les mêmes
algorithmes
 soit en adoptant comme items des couples (produit, nombre) tout en modifiant les notions
d’inclusion et de fréquence

40 : Rechercher dans la littérature les généralisations du problème : sous-abres fréquents (Thèse


d’Alexandre Termier), …

Références de base

Rakesh Agrawal and Ramakrishnan Srikant (1994). 􏱔 Fast Algorithms for Mining Association Rules 􏱔.
Dans Proceedings of the 20th VLDB Conference, Santiago, Chile.

Takeaki Uno, Tatsuya Asai, Yuzo Uchida, and Hiroki Arimura (2004). An Efficient Algorithm for
Enumerating Closed Patterns in Transaction Databases. E. Suzuki and S. Arikawa (Eds.) : DS 2004, LNAI
3245. Pp. 16-31. Springer Verlag Berlin Heidelberg.

Alexandre Termier (2004) . Extraction d'arbres fréquents dans un corpus hétérogène de données semi-
structurées : application à la fouille de documents XML. Thèse de Doctorat, LRI, U.M.R. CNRS 8623,
Université Paris-Sud, Orsay, France.

6 Projet_Règles_Association