dm chap03 ARM Apriori

publicité
2
Règles
d’Associations
Sommaire
• Introduction
• Ensembles fréquents
• Qualité des règles
• Génération des ensembles
fréquents
• Génération des règles
d’association
• Discussion
Lotfi Ben Romdhane, Ph.D.
DSI / ESST / US/ Tn
3
Concepts de base (1)
• MBA : Market Basket Analysis
• Analyser les transactions d’achats des
utilisateurs pour dégager les habitudes d’achat
des clients
• Très utile pour développer des stratégies de
Marketing
▫ Exemple : une grande partie des clients qui achète
des ordinateurs, achète aussi des antivirus
mettre les compartiments hardware et software très
proches
faire des « packages » de promotion
4
Concepts de base (2)
• Les serveurs Web stockent les sessions de visite
des internautes
▫ IP, navigateur, pages visitées, ordre de la visite,
durée, ...
• La découverte des « patrons » internautes est
très utile
▫ pour faire des « prefetching » côté serveur
▫ conception du contenu et de la structure du site
web
« si l’internaute visite la page p1, et puis p2; alors il va
visiter par la suite la page p5 » !
5
Concepts de base (3)
6
Fréquence d’un ensemble (1)
• Les données sont des données ensemblistes
• I = {I1, I2, …, In} désigne un ensemble d’objets
• D = {T1, T2, …, Tm} est un ensemble de
transactions tel que Ti ⊆ I ; ∀ Ti∈ D
• On note par k-ensemble tout ensemble de
taille k (contenant k objets)
• Une transaction T est dite contenir un ensemble
A ssi A⊆ T
• La fréquence d’un ensemble A est le nombre de
transactions dans D contenant A
▫ appelées transactions (transactional databases)
▫ chaque transaction est un ensemble d’objets
• La génération des règles d’associations consiste
à trouver les corrélations intéressantes
entre les données
• Les règles seront modélisées sous forme logique
antécédent ⇒ conséquent
• Règles intéressantes: besoin d’une mesure
pour quantifier la qualité des règles?
7
Fréquence d’un ensemble (2)
TID
Liste d’objets
T100
I1, I2, I5
T200
I2, I4
• A = {I1, I2} est un 2-ensemble
T300
I2, I3
puisqu’il contient deux objets
T400
I1, I2, I4
T500
I1, I3
T600
I2, I3
T800, et T900 contiennent
T700
I1, I3
l’ensemble A
T800
I1, I2, I3, I5
T900
I1, I2, I3
• I = {I1, I2, I3, I4, I5}
• D = {T100, T200, …, T900}
• Les transactions T100, T400,
• Ainsi la fréquence de A est égal
à quatre
8
Mesure de qualité (1)
• Une règle d’association est une implication
sous la forme A⇒B
⇒ tels que
▫ A ⊂ I, B ⊂ I; et
▫ A∩B=∅
• Pour mesure la qualité d’une règle d’association,
on va utiliser deux indices :
▫ support
▫ confidence
9
Mesure de qualité (2)
Mesure de qualité (3)
• Le support d’une règle d’association est défini
comme étant « le pourcentage des transactions
dans l’ensemble D contenant en même temps les
deux parties ‘antécédent’ et ‘conséquent’ de la
règle »
support ( A ⇒ B ) =
10
• Le degré de confidence d’une règle est défini
comme étant « le pourcentage des transactions
dans l’ensemble D contenant la partie
‘antécédent’ ; et qui contiennent aussi la partie
‘conséquent’ de la règle »
fréquence ( A ∪ B )
D
confidence ( A ⇒ B ) =
support ( A ∪ B )
fréquence ( A ∪ B )
=
support ( A )
fréquence ( A )
confidence ( A ⇒ B ) = P ( B / A )
support ( A ⇒ B ) = P ( A ∪ B )
support(A ⇒ B) , confidence (A ⇒ B) ∈[0,1]
11
Mesure de qualité (4)
Mesure de qualité (5)
TID
List of Items
T100
I1, I2, I5
T200
I2, I4
• fréquence (A) = 4
T300
I2, I3
• fréquence (B) = 6
T400
I1, I2, I4
T500
I1, I3
T600
I2, I3
• support (A ⇒ B) = 2/9 = 0.222
T700
I1, I3
• confidence (A ⇒ B) = (2/9)
T800
I1, I2, I3, I5
T900
I1, I2, I3
• A = {I1, I2} , B = {I3}
• Règle : A ⇒ B ?
• fréquence (A ∪ B) = 2
/(4/9) = 0.5
12
• Le support et la confidence sont deux indices
pour mesurer la qualité des règles
▫ support : modélise l’utilité de la règle
▫ confidence : modélise le degré de certitude de la
règle
▫ « ordinateur » ⇒ « logiciel antivirus » : support
=0.02; confidence = 0.6
il ya une probabilité globale de 2% que les deux
objets soient achetées ensemble
60% de ceux qui achètent « un ordinateur » achètent
aussi un « antvirus »
13
Algorithme générique (1)
14
Algorithme générique (2)
Phase I. Calculer les ensembles fréquents
• La première phase est, algorithmiquement, plus
complexe que la deuxième
• déterminer tous les ensembles dont le support est
supérieur ou égal à un seuil minimal minsup
▫ les performances globales d’un algorithme de
génération des règles associatives est dominé par
la complexité de la première phase
Phase II. Générer les « règles fortes »
• Une approche aveugle : générer un sousensemble et puis calculer sa fréquence !
• Utiliser les ensembles fréquents déterminés
pendant la Phase I pour calculer les règles fortes
• support ( règle ) ≥ minsup; et
• confidence (règle) ≥ minconf
▫ le nombre de sous-ensembles possibles d’objets
est exponentiel
NI = 2 − I − 1
I
I = 100 ⇒ NI = 1,2676 ×1030
15
16
Introduction (1)
• Apriori a été proposé par Agrawal et Srikant
en 1994 dans les labos d’IBM pour calculer les
ensembles fréquents
• Le nom de l’algorithme provient du fait qu’on
utilise des connaissances à priori pour générer
les ensembles fréquents
▫ ces connaissances se basent sur des propriétés
mathématiques des ensembles fréquents
▫ essaye de réduire l’espace de recherche
18
17
Introduction (2)
Introduction (3)
• Lk est l’ensemble de tous les k-ensembles
fréquents
• Théorème 2- propriété Apriori
• Théorème 1 - propriété a priori
▫ Tous les sous-ensembles non-vides d’un ensemble
• Si Lk = ∅ alors Lj = ∅ ∀ j≥k
fréquent sont fréquents
• Ce théorème illustre le fait qu’à partir d’une
certaine taille k, il n’est plus possible d’avoir des
ensembles fréquents
• Démonstration (squelette)
▫ soit Y un ensemble fréquent: support(Y) ≥ minsup
▫ générer les ensembles fréquents par ordre croissant
de taille: ordre 2, 3, .... (Apriori !)
▫ soit X un sous-ensemble de Y (X ⊂ Y)
∀ T∈D; si Y ⊆ T alors X ⊆ T
Ainsi fréquence (X)≥ fréquence (Y)
19
Algorithme (1)
• entrée: un ensemble de transactions
• sortie: ensembles fréquents
DEBUT
▫ L1 = {singletons fréquents}
Tant Que (Lk <> ∅) faire
k ←k+1
1. JOINTURE
Ck ← jointure(Lk-1)
2. ELAGAGE
Lk ← élagage(Ck)
Fin Tant Que
▫ retourner (L = ∪ Lk ∀k≥1)
FIN
20
Algorithme (2)
• Dans la première étape, on effectue la jointure
de deux ensembles fréquents de taille k pour
obtenir les ensembles candidats de taille k+1
• On suppose l’existence d’un ordre
lexicographique entre les éléments de I
• Tous les éléments d’un k-ensemble fréquent sont
ordonnés selon cet ordre
21
Algorithme (3)
Algorithme (4)
• On considère deux ensembles fréquents de taille
k : l1 ∈ Lk ; l2 ∈ Lk. Pour joindre l1 et l2; on doit
avoir les conditions suivantes :
• La deuxième étape d’élagage consiste à
supprimer les ensembles générées non-fréquents
• En effet, ces ensembles sont inutiles dans les
étapes suivantes
1. les (k-1) premiers éléments de l1 et de l2 sont
identiques
l1 [ j ] = l2 [ j ]; ∀j = 1..(k − 1)
▫ un ensemble non-fréquent de taille k ne peut pas
être utilisé pour générer des ensembles fréquents
de taille supérieure
▫ ceci est garantie par la « propriété Apriori »
2. l1[k] < l2[k] : pour garantir qu’il n’y a pas de
duplicatas
•
22
L’ensemble résultant de la jointure est
l= { l1[1], l1[2], …, l1[k-1], l1[k] , l2[k] }
23
Exemple (1)
Ensemble Fréquence
Exemple (2)
L1
Ensemble Fréquence
{I1, I2}
4
7
{I1, I3}
4
{I3}
6
{I1, I4}
1
{I4}
2
{I5}
2
{I1}
6
{I2}
TID
List of Items
T100
I1, I2, I5
T200
I2, I4
T300
I2, I3
T400
I1, I2, I4
T500
I1, I3
T600
I2, I3
T700
I1, I3
T800
I1, I2, I3, I5
T900
I1, I2, I3
24
C2
min_sup = 2/9
min_fréq = 2
{I1, I2, I3}
C3
Ensemble Fréquence
{I1, I2}
4
{I1, I3}
4
{I1, I5}
2
{I1, I5}
2
{I2, I3}
4
{I2, I3}
4
{I2, I4}
2
{I2, I4}
2
{I2, I5}
2
{I2, I5}
2
{I3, I4}
0
{I3, I5}
1
{I4, I5}
0
Dans l’étape d’élagage, C2
reste inchangée
Ensemble
Itemset
{I1, I2, I3}
{I1, I2, I5}
L2
{I1, I2, I5}
{I1, I3, I5}
{I2, I3, I4}
{I2, I3, I5}
{I2, I4, I5}
Phase élagage- En se basant sur la propriété
que tous les sous-ensembles d’un ensemble
fréquent sont fréquent, on peut supprimer :
L3
{I 1 , I 3 , I 5 } car {I 3 , I 5 }∉ L 2
{I 2 , I 3 , I 4 } car {I 3 , I 4 }∉ L 2
{I 2 , I 3 , I 5 } car {I 3 , I 5 }∉ L 2
{I 2 , I 4 , I 5 } car {I 4 , I 5 }∉ L 2
Exemple (3)
fréquence
{I1, I2, I3}
2
{I1, I2, I5}
2
TID
Liste d’objets
T100
I1, I2, I5
T200
I2, I4
T300
I2, I3
T400
I1, I2, I4
T500
I1, I3
T600
I2, I3
T700
I1, I3
T800
I1, I2, I3, I5
T900
I1, I2, I3
28
Phase élagage- En se basant sur la propriété
que tous les sous-ensembles d’un ensemble
fréquent sont fréquent, on peut supprimer :
{I1 , I 2 , I 3 , I 5 } car {I 2 , I 3 , I 5 }∉ L3
L4 = ∅
minsup
= 2/9
L =L2 ∪ L3
• Une règle A ⇒ B est dite forte (ou intéressante)
ssi
1. support (A ⇒ B ) ≥ minsup
2. confidence (A ⇒ B ) ≥ minconf
•
27
{I1, I2,I3,I5}
C4
Concepts de base
•
26
ensemble
L3
ensemble
25
Puisque les règles seront générées à partir des
ensembles fréquents, donc la première
condition est nécessairement vérifiée
On peut utiliser d’autres indices de mesure de
qualité
Algorithme générique
▫ entrée: L = ensemble des ensembles fréquents
▫ sortie : règles fortes (ou intéressantes)
DEBUT
Pour chaque ensemble fréquent li ∈ L faire
1.
2.
3.
générer Sli l’ensemble de tous les sous-ensembles non
vides de li
∀ X∈ Sli , générer Rx, une règle sous la forme
X ⇒ (li \ X )
Calculer le degré de confidence de Rx et la retenir si
confidence(Rx) ≥ minconf
Fin Pour
FIN.
30
29
L = L2 ∪ L3
Exemple
TID
Liste d’objets
T100
I1, I2, I5
T200
I2, I4
T300
I2, I3
T400
I1, I2, I4
T500
I1, I3
T600
I2, I3
T700
I1, I3
{I1, I2, I3}
2
{I1, I2}
4
{I1, I2, I5}
2
{I1, I3}
4
l = {I1, I2, I5}
Sl = {{I1, I2}; {I1, I5}; {I2, I5};
{I1}, {I2}, {I5} }
{I1, I5}
2
{I2, I3}
4
{I2, I4}
2
{I2, I5}
2
Complexité temporelle (1)
• Etant un k-ensemble fréquent, le nombre de
règles admettant un “conséquent” de taille j est
C kj =
min_conf = 70% (0.7)
T800
I1, I2, I3, I5
Règle
Confidence
T900
I1, I2, I3
I1 ∧ I2 ⇒ I5
2/4 = 50%
I1 ∧ I5 ⇒ I2
2/2 = 100%
I2∧ I5 ⇒ I1
2/2 = 100%
I1 ⇒ I2 ∧ I5
2/6 = 33%
I2 ⇒ I1 ∧ I5
2/7 = 29%
I5 ⇒ I1 ∧ I2
2/2 = 100%
k!
(k − j )! j !
• Ainsi, le nombre total de règles qui peuvent être
générées d’un k-ensemble fréquent est :
k −1
∑
j =1
C kj = 2 k − 1
allure
exponentielle
31
Complexité temporelle (2)
• Théorème 3
▫ Transférer les éléments d’un ensemble fréquent de
l’antécédent d’une règle au conséquent ne peut
pas augmenter son degré de confidence
• Démonstration (squelette)

 confidence


 confidence

support ( A ∪ B ∪ C )
support ( A ∪ B )
support ( A ∪ B ∪ C )
(A ⇒ B ∪ C) =
support ( A )
(A ∪ B ⇒ C) =
D’après lé théorème 1, on a : support (A) ≥ support (A∪B). Donc
obligatoirement : confidence (A∪B⇒C) ≥ confidence(A⇒ B∪ C)
32
Complexité temporelle (3)
• Ainsi, on peut dégager à partir du théorème 3,
les résultats suivants
• Théorème 4
▫ Tout sur-ensemble (superset) du ‘conséquent’
d’une règle non-confidente est aussi nonconfident
▫ Tout sous-ensemble du ‘conséquent’ d’une règle
confidente est aussi confident
34
33
Complexité temporelle (4)
{I1, I2, I3}
2
{I1, I2}
4
{I1, I2, I5}
2
{I1, I3}
4
{I1, I5}
2
minconf =
70% (0.7)
{I2, I3}
4
{I2, I4}
2
{I2, I5}
2
l = {I1, I2, I5}
Sl = {{I1, I2}; {I1, I5}; {I2, I5};
{I1}, {I2}, {I5} }
• I1 ∧ I2 ⇒ I5 est non-confidente. Ainsi, sera
tout conséquent contenant I5 (superset)
• I1 ⇒ I2 ∧ I5
• I2 ⇒ I1 ∧ I5
•I5 ⇒ I1 ∧ I2 est confidente. Ainsi, sera tout
conséquent qui est sous-ensemble de {I1, I2}
• I1 ∧ I5 ⇒ I2
• I2∧ I5 ⇒ I1
Rule
Confidence
I1 ∧ I2 ⇒ I5
2/4 = 50%
I5 ⇒ I1 ∧ I2
2/2 = 100%
I1 ∧ I5 ⇒ I2
confidente
I2∧ I5 ⇒ I1
confidente
I1 ⇒ I2 ∧ I5
non-confidente
I2 ⇒ I1 ∧ I5
non-confidente
Frequent Pattern Growth
36
35
Principe de base (1)
• Apriori utilise l’approche : « générer et tester » :
générer les ensembles; et puis tester leurs
fréquences
▫ la génération des ensembles candidats est coûteuse (en
espace et en temps)
▫ le calcul de fréquence est coûteux
le test d’appartenance d’un ensemble candidat à une
transaction est coûteux
nécessite plusieurs E/S disques
Principe de base (2)
• FP-Growth génère les ensembles fréquents
sans la génération des ensembles candidats
• Il est basée sur une autre stratégie: « diviser
pour régner » (Divide & Conquer) selon les
étapes suivantes :
▫ Etape I : représenter la base de données sous
forme d’un arbre appelée FP-tree
une représentation compressée de la base
retient les informations d’associations entre les
objets
38
37
Principe de base (3)
Définition FP-tree (1)
▫ Etape II : Diviser la bd compressée (FP-tree) en
un ensembles de bases de données projetées
chacune correspondant à un élément fréquent
ces bases projetées sont de taille inférieure à celle de
la base d’origine
▫ Etape III : Récursivement calculer, selon la même
démarche, les ensembles fréquents dans chaque
bd projetée
nécessite une condition d’arrêt
les calculs sur chaque base sont indépendants: ils
peuvent se faire en parallèle
39
Définition FP-tree (2)
• Les nœuds dans l’arbre correspondent aux objets
et lui sont associés des compteurs
• La racine de l’arbre est le nœud NULL : ne
stocke aucun objet
▫ chaque transaction de la base est représentée à
l’aide d’un chemin dans l’arbre
un chemin est une séquence de nœuds partant de la
racine de l’arbre et s’arrêtant sur un nœud (interne
ou externe)
▫ dans l’arbre, on maintient des pointeurs entre les
différentes occurrences du même objet
40
Construction du FP-tree (1)
• Le principe de construction du FP-tree se
résume en deux grandes phases
▫ Phase I
calculer L l’ensemble des singletons fréquents
une simple requête SQL permet de le faire
▫ Phase II
en se basant sur la liste L, transformer chaque
transaction de la bd en un chemin dans l’arbre
41
42
Construction du FP-tree (2)
Construction du FP-tree (3)
Algorithme Construire_FP-tree
4. pour chaque transaction Ti ∈ D faire
▫
▫
entrée
▫ D : une base de données transactionnelle
▫ minSup: une valeur du support minimal
▫
trier les éléments de Ti selon l’ordre L
trouver un chemin P dans l’arbre ayant un préfixe
commun avec Ti
SI (P= ∅) ALORS
créer une branche dont les nœuds sont composés des objets
de Ti
initialiser leurs compteurs à 1
rattacher la branche à la racine de l’arbre
sortie: l’arbre FP-tree
DEBUT
1. Parcourir la bd une fois et calculer L;
l’ensemble des singletons fréquents
2. Trier L dans l’ordre décroissant des fréquences
3. créer un nœud racine et l’étiqueter avec NULL
▫
SINON
incrémenter le compteur de tous les nœuds dans P de 1
créer une branche contenant les objets { T - P} et initialiser
leurs compteur à 1
attacher cette branche au nœud feuille dans P
Fin Pour
FIN.
44
43
Exemple (2)
Exemple (1)
TID
Liste d’objets
T100
I1, I2, I5
T200
I2, I4
T300
I2, I3
T400
I1, I2, I4
T500
I1, I3
T600
I2, I3
T700
I1, I3
T800
I1, I2, I3, I5
T900
I1, I2, I3
L
minsup= 2/9
(min freq= 2)
Objet
Fr éq.
{I2}
7
{I1}
6
{I3}
6
{I4}
2
{I5}
2
• L = { I1: 6; I2:7; I3: 6; I4: 2; I5 : 2}
• Ordre L (L-order) : I2; I1; I3; I4; I5
NULL
• T100 = { I1, I2, I5 } donne la première
branche de l’arbre composée des trois
nœuds selon l’ordre L
▫ noeud1 = <I2: 1>
▫ noeud2 = <I1:1>
▫ noeud3 = <I5: 1>
I2:1
• T200 = {I2, I4} donne le chemin
ordonné {<I2:1>; <I4:1> }
I1:1
préfixe commun avec un chemin
existant dans l’arbre
Path1 = {<I2: 1>; <I1:1>; <I5: 1> }
Path2 (T200)= {<I2:1>; <I4:1>}
I5:1
46
45
Exemple (4)
Exemple (3)
• Une table de hachage : chaque objet fréquent est chaînée
(avec des pointeurs) à toutes ses occurrences dans l’arbre
• T300 = {I2, I3} donne le
chemin {<I2:1>; <I3:1> }
NULL
NULL
I2:3
I2:2
I1:1
I4:1
I1:1
I3:1
I4:1
Objet
Fr eq.
{I2}
7
Pointeur
NULL
{I1}
6
{I3}
6
{I4}
2
….
{I5}
2
….
I1:4
I5:1
I5:1
Après lecture de T200
Après lecture de T300
I3:2
I1:2
I2:7
I5:1
I3:2
I4:1
I4:1
I3:2
I5:1
47
Complexité
• Le FP-tree a une taille inférieure à celle de la BD
originale
▫ plusieurs transactions admettent des « parties
communes » (préfixes)
• Meilleur des cas (best case)
toutes les transactions contiennent les mêmes objets
un seul chemin dans l’arbre
• Pire des cas (worst case)
chaque transaction possède un ensemble unique d’objets
chaque transaction est représentée par une branche
distincte
le FP-tree admet la même taille que la BD originale
48
Fouille du FP-tree (1)
• Ainsi, la génération des ensembles fréquents à
partir de la BD est transformé au problème de la
génération des EF à partir du FP-tree
• Cette génération va suivre le même principe «
diviser pour régner »
▫ soit X un EF (éventuellement un singleton)
▫ construire une BD conditionnelle BDx à partir du
FP-tree
▫ construire FP-treeX le FP-tree correspondant à X
▫ récursivement générer les ensembles fréquents à
partir de FP-treeX
49
Fouille du FP-tree (2)
50
Fouille du FP-tree (3)
• On commencera par les EF d’ordre 1 (singletons)
▫ on commencera par les moins fréquents aux plus
fréquents (ordre L inversé)
On commence par les
singletons se trouvant au
niveau des feuilles de l’arbre
• Il y a deux conditions d’arrêt de la récursivité
ordre L inversé
▫ un FP-tree qui est vide
▫ un FP-tree qui contient une seule branche
Objet (X)
I5
DX
{I2, I1 : 1}; {I2, I1, I3 : 1}
I4
{I2, I1 : 1}; {I2 : 1}
I3
I1
{I2, I1 : 2}; {I2 : 2}; {I1 : 2}
{I2 : 4}
51
Fouille du FP-tree (4)
• La BD conditionnelle DX d’un élément X est
composé des chemins qui existent dans le FP-tree
52
TID
Liste d’objets
I5_1
{I2, I1 : 1}
I5_2
{I2, I1, I3 : 1}
et ayant comme suffixe X (se terminant par X)
• La fréquence d’un élément α∈ DX est le
Min freq= 2
minimum à travers le chemin correspondant à
α dans le FP-treeX
I5
Fouille du FP-tree (5)
Objet
Freq.
I1
2
I2
2
I3
1
Objet Freq.
I1
2
I2
2
Pointeurs
I3 n’est pas fréquent : disparait du FP-tree
NULL
FP-tree pour I5
I1:2
FP-tree avec une
seule branche
I2:2
53
Fouille du FP-tree (6)
54
Fouille du FP-tree (7)
• On obtient un arbre ayant une seule branche:
arrêt des appels récursifs
• Les ensembles fréquents générés par ce FP-tree
sont composés de toutes les combinaisons selon
ce chemin
• Ainsi, on obtient pour l’élément I5 et son FP-tree
▫ {I2, I5}; {I1, I5}; {I2, I1, I5}
• La fréquence des ensembles générés est le
minimum dans le FP-tree correspondant
NULL
▫ {I2, I5 : 2}; {I1, I5: 2}; {I2, I1, I5 : 2}
▫ pour le FP-tree de I5: chemin= {I2, I1}
combinaisons : {I2}; {I1}; {I2, I1}
I1:2
• La croissance de patrons est effectué par la
concaténation des ensembles fréquents générés
à partir de FP-treeX avec le suffixe X
I2:2
55
Fouille du FP-tree (8)
TID
Liste Objets
I4_1
{I2, I1 : 1}
I4_2
{I2 : 1}
Objet
Freq.
I2
2
I1
1
Objet
Freq.
I2
2
56
NULL
I1 n’est pas fréquent : ne vas pas être
considére dans le FP-tree
NULL
FP-tree de I4
I2:2
Pointeur
I3
Fouille du FP-tree (9)
I4
FP-tree de I3
TID
Liste d’objets
I3_1
{I2, I1 : 2}
I3_2
{I2 : 2}
I3_3
{I1 : 2}
une seule
branche
Min freq= 2
Ensembles fréquents générés : {I2, I4 : 2}
I2:4
I1:2
I1:2
Objet
Freq.
I2
4
I1
4
Pointeur
plus d’une branche !
58
57
Fouille du FP-tree (11)
Fouille du FP-tree (10)
TID
Liste d’objets
Objet
Fréq.
I1
{I2 : 2}
I2
2
• Quand au dernier singleton {I1}, son FP-tree a
été déjà développé
Pointeur
Objet
• Les “patrons fréquents” développé à
NULL
du FP-tree de I1
• {I2, I1: 2}
I2:2
• Les “patrons fréquents” développé à
du FP-tree de I3
FP-tree de I1
• {I2, I3: 4}; {I1, I3: 4}; {I2,I1, I3: 2}
I5
I4
I3
I1
une seule
branche
Ensembles fréquents
• min freq = 2
{I2, I5: 2}; {I1, I5: 2}; {I2, I1, I5: 2}
{I2, I4: 2}
{I2, I3: 4}; {I1, I3: 4}; {I2, I1, I3: 2}
{I2, I1: 4}
59
Algorithme Fouille_FP-Tree (1)
▫ entrée
un FP-tree T
une BD transactionnelle D
un suffixe α
60
Algorithme Fouille_FP-Tree (2)
SINON
pour chaque “patron” ai dans la « table de
hachage » du FP-tree T faire
générer le « patron » xi = {ai ∪ α} avec la fréquence
count (xi) = count(ai )
calculer
déterminer Dxi la BD conditionnelle pour xi
Txi ← FP-tree (Dxi, minSup)
SI (Txi ≠ ∅) ALORS Fouille_FP-tree (Txi , xi)
▫ sortie : {« patrons » fréquents}
DEBUT
SI (T contient une seule branche P) ALORS
C ← {c1, c2, …, cn} l’ensemble de toutes les combinaisons
possibles des nœuds dans le chemin P
∀ ci∈ C; générer le “patron” xi = {ci ∪ α} et calculer la
fréquence de xi = minimum fréquence des noeuds dans ci
Fin Si
FIN.
61
FP-Growth : discussion
Discussion (1)
• Avantages
▫ uniquement deux parcours de la BD
▫ opère sur des « données compressées »
▫ pas de génération de « candidats »
plus rapide
• Inconvénients
▫ la construction du FP-tree est assez coûteuse
▫ le FP-tree peut être assez volumineux pour tenir
en mémoire
• Autres mesures de qualité
confidence ( A ⇒ B )
support ( B )
Leverage ( A ⇒ B ) = support (A ∪ B ) - support (A )× support (B )
Lift ( A ⇒ B ) = P ( B / A) =
• Malgré sa simplicité, le temps de calcul reste un
handicap pour l’algorithme Apriori surtout pour
les grandes bases de données transactionnelles
contenant des millions de transactions
• D’autres approches essayent d’améliorer le
temps de calcul: FP-Growth
TID
List d’objets
T100
I1, I2, I5
T200
I2, I4
T300
I2, I3
T400
I1, I2, I4
T500
I1, I3
T600
I2, I3
T700
I1, I3
T800
I1, I2, I3, I5
T900
I1, I2, I3
Règles
fouille de
données
•minsup = 2/9
•minconf = 7/10
Qualité
I1 ∧ I5 ⇒ I2
s= 2/9 ; c = 1
I2∧ I5 ⇒ I1
s= 2/9 ; c = 1
I5 ⇒ I1 ∧ I2
s=2/9 ; c=1
Connaissances
Données
63
Discussion (2)
62
Téléchargement