Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parMartine St-Amand Modifié depuis plus de 8 années
1
IFT 501 Recherche d'information et forage de données Chaptitre 6 : Analyse d’association concepts de base et algorithmes André Mayers Automne 2014 inspiré fortement des transparents suggérés par les auteurs du manuel obligatoire http://www-users.cs.umn.edu/~kumar/dmbook/index.php 1
2
GÉNÉRATION DES RÈGLES D’ASSOCIATION Section 6.3 2
3
Génération des règles Étant donné L, un itemset fréquent, trouver tous les sous- ensembles f L tel que f L – f satisfait la contrainte du support minimum requis. ◦ Si {A,B,C,D} est un itemset fréquent alors les règles candidates sont : ABC D, ABD C, ACD B, BCD A, A BCD,B ACD,C ABD, D ABC AB CD,AC BD, AD BC, BC AD, BD AC, CD AB, Si |L| = k, alors il y a 2 k – 2 règles d’association candidates (excluant L et L) 3
4
Génération des règles Comment générer efficacement des règles à partir des itemsets fréquents ? ◦ En général, la confiance n’est pas anti monotone c(ABC D) peut être > ou < que c(AB D) parce que le numérateur et le dénominateur change en même temps ◦ Mais, pour un même itemset, la confiance prise comme fonction de la partie droite des règles est anti monotone. ex., L = {A,B,C,D}: c(ABC D) c(AB CD) c(A BCD) parce que le numérateur est constant et que le dénominateur croit constamment De façon plus générale conf({i 1 i 2 } → {i 3 i 4... i k }) ≤ conf({i 1 i 2 i 3 } → {i 4 i 5... i k }). 4
5
Génération des règles pour l’algorithme a priori Treillis des règles Règles supprimées Règle dont la confiance est faible 5
6
Génération des règles pour l’algorithme a priori… Approche par niveau (# d’éléments dans le RHS) ◦ Générer les règles de niveau 1 ayant une haute confiance ◦ Les règles candidates du niveau x sont générées en fusionnant deux règles de niveau (x-1) dont les conséquents partagent le même préfixe La fusion de CD AB et BD AC) produirait la règle D ABC ◦ Éliminer la règle D ABC si son sous-ensemble AD BC n’a pas une haute confiance 6
7
Génération des règles pour l’algorithme a priori… Algorithm 6.2 : Génération des règles pour l’algorithme a priori. 1.for each frequent k-itemset f k, k ≥ 2 do 2. H 1 = {i | i ∈ f k } {1-item consequents of the rule.} 3. call ap-genrules(f k,H 1 ) 4.end for 7
8
Génération des règles pour l’algorithme a priori… 8
9
REPRÉSENTATION COMPACTE DES ITEMSETS FRÉQUENTS Section 6.4 9
10
Représentation compacte des itemsets fréquents Certains itemsets sont redondants parce qu’ils ont le même support que leur sur-ensemble Nombre d’itemsets fréquents Besoin d’une représentation compacte 10
11
Représentation compacte des itemsets fréquents 15 transactions et 30 items sup(A1, A2, A3, A4) = sup(A1, A2, A3, A4, A5) = sup(A1, A2, A3, A4, A5, A6) = sup(A1, A2, A3, A4, A5, A6, A7) … Il s’ensuit que (A1, A2) (A3, A4), (A1, A2, A5) (A3, A4), (A1, A2, A5) (A3, A4, A6) … ont toutes le même support et confiance, et que chaque fois que l’une d’elles est vraie alors les autres sont aussi vraies ; elles sont redondantes. ◦ Une règle r : X → Y, est redondante s’il existe une règle r’ : X’ → Y’, tel que 1.sup(r) = sup(r’) conf(r) = conf(r’) 2.(X X’ Y Y’) (X X’ Y Y’) 11
12
Itemset fréquent maximal Frontière Itemset maximal Itemsets non fréquents Un itemset fréquent est maximal si tous ses surensembles ne sont pas fréquents 12
13
Itemset fermé Un itemset est fermé si aucun de ses sur-ensembles immédiats a le même nombre de supports que lui 13
14
Itemset fréquent fermé 14
15
Itemset maximal vs itemset fermé Transaction Ids N’ont aucun support 15
16
Itemset maximal vs itemset fermé Minsup = 2/5 # Fermé = 9 # Maximal = 4 Fermé et maximal Fermé mais non maximal 16
17
Itemset maximal vs itemset fermé 17
18
Algo 6.4 : Calcul du support utilisant les itemsets fréquents et fermés 1. Soit C = {f | f est un itemset fréquent et fermé} 2. kmax = max |f| où f ∈ C 3. F kmax = {f | f ∈ C, |f| = kmax} 4. for k = kmax − 1 downto 1 do 5. F k = {f | f ⊂ f’, f’ ∈ F k+1, |f| = k} 6. for each f ∈ F k do 7. if f C then 8. f.support = max{f’.support | f’ ∈ F k+1, f ⊂ f’} 9. end if 10. end for 11. end for L’utilisation de cet algorithme réduit le nombre de balayage de la base de transactions 18
19
Règle redondante et itemset fermé Un règle r : X → Y, est redondante s’il existe une règle r’ : X’ → Y’, tel que 1.sup(r) = sup(r’) conf(r) = conf(r’) 2.(X X’ Y Y’) (X X’ Y Y’) À partir de Figure 6.17, ◦ {b} n’est pas un itemset fréquent fermé ◦ {b, c} est fréquent fermé ◦ |{b}|=|{b, c}| ◦ Donc la règle {b} → {d, e} est redondante parce que la règle {b, c} → {d, e} a le même support et confiance Attention logiquement {b} → {d, e} {b, c} → {d, e} mais pas l’inverse. À chaque fois que b apparaît dans une transaction, c apparaît aussi, mais l’inverse n’est pas vrai Les règles redondantes ne sont pas générées si on n’utilise que les itemsets fréquents fermés comme LHS pour générer les règles. Tous les itemsets fréquents maximaux sont aussi fermés parce qu’ils ne peuvent avoir le même support que ses sur-ensembles, ◦ en effet, tous les surensembles d’un itemset maximal n’est pas fréquent 19
20
Algorithme optimisé (CHARM) 20
21
Algorithme optimisé (CHARM) 21
22
MÉTHODES ALTERNATIVES POUR GÉNÉRER LES ITEMSETS FRÉQUENTS Section 6.5 22
23
Fouille et construction du treillis des itemsets Du général au spécifique vs du spécifique au général La longueur maximale des itemsets fréquents détermine où se trouve la frontière. L’idéal est de partir de l’extrémité la plus proche de la frontière 23
24
Fouille et construction du treillis des itemsets Les classes d’équivalence La somme totale du temps pris pour traiter chacune des classes séparément peut être inférieure à celle prise pour traiter l’ensemble par exemple le sous-problème peut être encodé dans la RAM 24
25
Fouille et construction du treillis des itemsets En largeur vs en profondeur ◦ Apriori fouille et construit en largeur ◦ Voir la diapositive suivante pour les caractéristiques de la fouille en profondeur 25
26
Fouille et construction du treillis des itemsets fouille en profondeur la recherche en profondeur permet de trouver plus facilement la frontière et est souvent utilisé pour trouver les itemsets maximaux. 26 si l’objectif est de trouver les itemsets maximaux alors si bcde est maximaux alors ses sous-ensembles de le sont pas.
27
Fouille et construction du treillis des itemsets Représentation horizontal ou vertical de la base des transactions Disposition horizontale ◦ Voir apriori Disposition verticale ◦ Le support d’un itemset candidat est la cardinalité de l’intersection des colonnes d’articles de l’itemset. 27
28
L’ALGORITHME FP-GROWTH (FREQUENT-PATTERN GROWTH) Section 6.6 28
29
Les améliorations possibles pour Aprori Il est très coûteux s’il y a un nombre important de fréquent itemset potentiel. ◦ S’il y a 10 4 1-itemsets fréquents, Apriori devra générer plus de 10 7 2-itemsets et tester leur fréquence. Goulot d'étranglement :génération et test des Candidats ◦ Le forages des motifs demande plusieurs lecture de la base de transactions et génère énormément de candidats Peut-on éviter les multiples balayages (scan) pour la génération des candidats ? Est-ce qu’il existe un structure de données qui pourraient aider à ◦ Réduire le nombre de balayages de la base de transaction ? ◦ Réduire le nombre de candidats ? ◦ Faciliter le calcul du nombre de support ? 29
30
DÉFINITION ET CONSTRUCTION D’UN FP- TREE 30
31
Définition : FP-tree (A frequent-pattern tree ). Défini par trois éléments ◦ un arbre dont la racine est étiqueté « null » et dont ◦ les sous-arbres sont nommés sous-arbres d’item-préfixes ◦ une table des pointeurs des items fréquents. Un nœud dans un sous-arbre d’item-préfixes consiste ◦ nom-item (item-name) l’item que ce nœud représente ◦ compte (count) Le # de transactions representée par la portion du chemin qui atteint ce nœud. ◦ nœud-lien (node-link) Un pointeur vers le prochain nœud du FP-tree ayant le même nom-item, ou null s’il n’y a pas un tel noeud. Chaque entrée dans la table des en-têtes des items fréquents contient ◦ le nom-item (et sa fréquence) ◦ le pointeur tête de la séquence des nœuds ayant ce nom-item 31
32
Exemple de FP-tree 32 Table des pointeurs Art. Fréq. et pointeur f 4 c 4 a 3 b 3 m 3 p 3 {} f:4 c:1 b:1 p:1 c:3 m:2 b:1 m:1 p:2 a:3
33
L’algorithme FP-growth Construit un FP-tree, une représentation compressée de la base des transactions Utilise une approche divise-et-conquiert récursives pour trouver les itemsets fréquents 33
34
Construction d’un FP-tree null A:1 B:1 Après lecture de TID=1 Après lecture de TID=2 null A:2 B:1 C:1 D:1 34 Table des pointeurs Art.frFr. A8 B7 C7 D5 E3 Table des pointeurs Art.frFr. A8 B7 C7 D5 E3
35
Construction d’un FP-tree Après lecture de TID=3 35 Table des pointeurs Art.frFr. A8 B7 C7 D5 E3 A:2 B:1 C:1 D:1 B:1 C:1 D:1 E:1
36
Algorithme FP-growth (construction du FP-tree). 1. Balayer T la base de transaction une fois ◦ Créer F, la liste des items fréquents avec leur support ◦ Trier F en ordre décroissant de support 2. Créer l’arbre N contenant que la racine étiqueté « null » 3. Pour chaque transaction dans la base de transaction ◦ Créer et trier la liste [p|P] des items fréquents selon F p est le premier élément de la liste et P le reste de la liste ◦ insert_tree([p | P], N ) 36
37
insert_tree([p | P], M ) (suite de l’algo 1) Si M a un fils N tel que N. nom-item = p. nom-item ◦ alors incrémenter N.compte ◦ sinon créer un nouveau nœud N N.nom-item p.nom-item N.compte 1 N.parent M N. nœud-lien pointeur vers le nœud qui a le nom-item selon la table des en-têtes des items fréquents Si P ≠Ø, alors insert_tree(P, N) Le résultat est que tous les itemsets fréquents issus de cette transaction sont projetés dans le FP-tree 37
38
Projection des items fréquents d’une transaction T : la base des transactions F : la liste des items fréquents dans T en ordre de fréquence t : une transaction, i.e. t est un élément de T freq(t) : la liste ordonnée des items fréquents de t, i.e. t ∩ F est appelée la projection des items fréquents de t L’ensemble des projections des items fréquents des éléments de T est suffisant pour le forage de l’ensemble des motifs fréquents ◦ découle du fait que les items non fréquents ne jouent aucun rôle dans le forage des motifs fréquents. 38
39
L’ensemble complet des projections des items fréquents de T peut être extrait de son FP-tree 39
40
Caractéristiques du FP-tree Par construction du FP-tree, pour tout t T, freq(t) correspondent à au plus un chemin de la racine à un nœud et le nombre de nœud du chemin est égale à |freq(t)|. ◦ on ne considère pas ici la racine et les propriétés des nœuds (nom-item et nœud-lien) Le chemin le plus long ne peut pas avoir plus de nœuds que la plus longue projection d’items fréquents 40
41
Il peut exister des représentions plus compacte que les FP-tree Soit T = {adef, bdef, cdef, a, a, a, b, b, b, c, c, c}, avec minSupp = 3 alors F = a → b → c → d → e → f ce qui donne l’arbre de gauche (sans la racine) et considérer l’ordre G = f → d → e → a → b → c qui donne l’arbre de droite (sans la racine) 41
42
Avantages du FP-tree Complet ◦ contient toutes les informations sur les motifs fréquents ◦ chaque motif correspond à un chemin Concis ◦ ne contient que les motifs fréquents ◦ Les items sont en ordre de fréquence décroissante, plus un item est fréquent plus il sera utilisé par les itemsets fréquents et se rapprochera de la tête de ces itemsets fréquents, donc son nœud sera utilisé souvent. ◦ Si on ne considère pas les nœuds-liens et la table des en-têtes des items fréquents, sa taille ne peut être plus grande que la base de transactions. Il existe des exemple où le ratio de compression est de l’ordre de 1:100 ◦ La profondeur d’un FP-tree est inférieur à la plus longue projection des items fréquents (freq(t))possible à partir des transactions de T L’avantage majeur est qu’il ne fait que 2 balayage de T 1.balayage de T pour trouver les 1-itemset 2.trier le résultat pour construire F 3.balayage de T pour construire le FP-Tree 42
43
Exemple : La base de donnée des transactions TID articles achetés Articles fréquents ordonnés 100 f, a, c, d, g, I, m, p f, c, a, m, p 200 a, b, c, f, l,m, o f, c, a, b, m 300 b, f, h, j, o f, b 400 b, c, k, s, p c, b, p 500 a, f, c, e, l, p, m, n f, c, a, m, p 43 posons minSupp = 3 d, g, h, j, k, l, o et s ne sont pas fréquents F= [f, c, a, b, m, p]
44
Exemple : le FP-tree construit 44 Table des pointeurs Art. Fréq. et pointeur f 4 c 4 a 3 b 3 m 3 p 3 {} f:4 c:1 b:1 p:1 c:3 m:2 b:1 m:1 p:2 a:3
45
FORAGE DES MOTIFS FRÉQUENTS À PARTIR D’UN FP-TREE 45
46
Tous les motifs contenant un item fréquent a i peuvent être obtenus en suivant le pointeur de a i dans la table des pointeurs. Par construction du FP-tree, tous les nœuds a i peuvent être atteints en suivant la chaine des pointeurs des champs nœud-lien en commençant par celui de la table des pointeurs correspondant à l’item fréquent a i. Tous les motifs contenant a i doivent être un sous-ensemble d’un chemin partant de la racine et contenant a i. 46
47
vocabulaire et constatation La base des motifs p- conditionnée est {fcam:2, cb:1} Dans cette base de donnée p- conditionnée, c est un item fréquent local Les motifs fréquents contenant p peuvent être déduits de sa base de motifs, ce sont {p:3 et pc:3} Le processus sera détaillé dans les prochaines diapositives 47 {} f:4 c:1 b:1 p:1 c:3 m:2 b:1 m:1 p:2 a:3
48
Partitionnement de la base des motifs fréquents La base des motifs fréquents peut être partitionnée en se basant sur liste ordonnée des articles fréquents F F=f-c-a-b-m-p ◦ Motifs contenant p (2 prochaines diapositives) ◦ Motifs contenant m mais pas p ◦ … ◦ Motifs contenant c mais non a, b, m, p ◦ Motif f Le partitionnement est complet et sans redondance 48
49
Les motifs fréquents contenant p À partir de la table des pointeurs, parcourir le FP-tree en suivant les pointeurs pour l’item fréquent p Créer tous les chemins à partir de la racine et se terminant par p pour former (en supprimant p de ces chemins) la base des motifs p- conditionnés. Ce sont l’ensemble des préfixes de p. motifs conditionnels art. motifs cond. c f:3 a fc:3 b fca:1, f:1, c:1 m fca:2, fcab:1 p fcam:2, cb:1 Table des pointeurs Art. Fréq. et pointeur f 4 c 4 a 3 b 3 m 3 p 3 {} f:4 c:1 b:1 p:1 c:3 m:2 b:1 m:1 p:2 a:3 49 à suivre sur la prochaine diapositive
50
Les motifs fréquents contenant p … le FP-tree p-conditionné pour chaque motif dans la base des motifs p-conditionnés ◦ Évaluer le nombre de chaque item ◦ Construire le FP-tree à partir de cette base des motifs 50 Table des ponteurs Itemfrequence f 4 c 4 a 3 b 3 m 3 p 3 {} f:4 c:1 b:1 p:1 c:3 m:2 b:1 m:1 p:2 a:3 Base des motifs p-conditionnés fcam:2cb:1 FP-tree p- conditionné {} | c:3 Les motifs fréquents reliés à p p, cp c est le seul item fréquent
51
Les motifs fréquents contenant m on répète le même processus avec m ◦ Il y a deux chemins qui mènent à m (fca et fcab) ◦ les items fréquents dans la base des motifs m-conditionnés sont f, c, a ◦ construire le FP-tree pour cette base et extraire les motifs fréquents 51 Header Table Item frequency head f 4 c 4 a 3 b 3 m 3 p 3 {} f:4 c:1 b:1 p:1 c:3 m:2 b:1 m:1 p:2 a:3 Base des motifs m-conditionnés fca:2fcab:1 FP-tree m- conditionnel {} | f:3 | c:3 | a:3 Les motifs fréquents reliés à m m, fm, cm, am, fcm, fam, cam, fcam
52
Révision de la procédure pour trouver les motifs fréqents contenant p Deux chemins ◦ f :4, c:3, a:3,m:2, p:2 fcam:2 ◦ c:1, b:1, p:1 cb:1 Base des motifs p-conditionnés ◦ {( f cam:2), (cb:1)} Un seul item fréquent c:3 52 Table des pointeurs Art. Fréq. et pointeur f 4 c 4 a 3 b 3 m 3 p 3 {} f:4 c:1 b:1 p:1 c:3 m:2 b:1 m:1 p:2 a:3 Le FP-tree p-conditionné {} c:3 Table des pointeurs Art. Fréq. et pointeur c 3 Les motifs fréquents sont donc {p:3 cp:3}
53
Révision de la procédure pour trouver les motifs fréqents contenant m Deux chemins ◦ f :4, c:3,a:3,m:2 fca:2 ◦ f :4, c:3, a:3, b:1, m:1. fcab:1 Base des motifs m-conditionnés ◦ {( f ca:2), (fcab:1)} Le FP-tree m-conditionné {} f:3 c:3 a:3 Table des pointeurs Art. Fréq. et pointeur f 3 c 3 a 3 53 Table des pointeurs Art. Fréq. pt f 4 c 4 a 3 b 3 m 3 p 3 {} f:4 c:1 b:1 p:1 c:3 m:2 b:1 m:1 p:2 a:3 Les motifs fréquents sont (m:3), (am:3), (cm:3), ( f m:3), (cam:3), (fam:3), (fcam:3) et (fcm:3) Quel est l’algo pour les énumérer ? prochaine diapositive
54
Déroulement de mine( |m). mine( | m) ◦ motif fréquent: am:3 ◦ base am-conditionné : {(fc:3)} ◦ mine( | am) motif fréquent : cam:3 base cam-conditionné : {(f :3)} mine( f :3 | cam) motif fréquent : fcam:3 ◦ mine( | am) ◦ motif fréquent : fam:3 mine( |m) ◦ motif fréquent : cm:3 ◦ base cm-conditionné : {( f :3)} ◦ mine( f :3 | cm) ◦ motif fréquent : (fcm:3) mine( |m) ◦ motif fréquent : (fm:3) {} f:3 c:3 a:3 Table des pointeurs Art. Fréq. et pointeur f 3 c 3 a 3 En résumé les motifs fréquent sont : am, cm, fm, cam, fam, fcm, fcam Finalement on constate que dans le cas où un FP-tree se réduit à un chemin, les motifs fréquents est la liste de toutes les combinaisons possibles des éléments du FP-tree
55
Forage des motifs fréquents par la création de base de motifs conditionnnés article Base des transactions projetées Base des motifs conditionnés FP-tree conditionné p {fcam, cb, fcam}{( fcam:2), (cb:1)} {(c:3)}|p m {fca, fcab, fca}{( fca:2), (fcab:1)} {( f :3, c:3, a:3)}|m b {fca, f, c}{( fca:1), ( f :1), (c:1)} a {fc, fc, fc}{( fc:3)} {( f :3, c:3)}|a c { f, f, f }{( f :3)} {( f :3)}|c f S’il est possible de mettre la base de transaction en mémoire, il préférable de construire la base des motifs conditionnés pour construire les FP-tree conditionnés Sinon construire la base des transactions projetées pour construire les FP-tree conditionnés ◦ Si une des bases des transactions projetées ne rentre toujours pas en mémoire, il faut répéter le processus sur cette base.
56
Construction d’un FP-Tree Les pointeurs sont utilisés pour la génération des itemsets fréquents E:1 null A:7 B:5 B:3 C:3 D:1 C:1 D:1 C:3 D:1 E:1 D:1 E:1 Table des pointeurs 56
57
FP-growth Base des motifs conditionnels pour D P = {(A:1,B:1,C:1), (A:1,B:1), (A:1,C:1), (A:1), (B:1,C:1)} Récursivement appliquer FP-growth sur P Ensemble des itemsets fréquents trouvé (avec sup > 1) AD, BD, CD, ACD, BCD null A:7 B:5 B:1 C:1 D:1 C:1 D:1 C:3 D:1 57
58
Tree Projection Set enumeration tree: Possible Extension: E(A) = {B,C,D,E} Possible Extension: E(ABC) = {D,E} 58
59
Tree Projection Items are listed in lexicographic order Each node P stores the following information: ◦ Itemset for node P ◦ List of possible lexicographic extensions of P: E(P) ◦ Pointer to projected database of its ancestor node ◦ Bitvector containing information about which transactions in the projected database contain the itemset 59
60
Projected Database Original Database: Projected Database for node A: For each transaction T, projected transaction at node A is T E(A) 60
61
ECLAT For each item, store a list of transaction ids (tids) TID-list 61
62
ECLAT Determine support of any k-itemset by intersecting tid-lists of two of its (k-1) subsets. 3 traversal approaches: ◦ top-down, bottom-up and hybrid Advantage: very fast support counting Disadvantage: intermediate tid-lists may become too large for memory 62
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.