Upload
jehane-vigneron
View
111
Download
0
Tags:
Embed Size (px)
Citation preview
1
Extraction de Connaissances à partir de Donnéeset
Fouille de Données
Knowledge Discovery in Data Basesand
Data Mining
Pascal [email protected]
Centre de Recherche LGI2PEcole des Mines d’Alès
2
Objectifs du cours
Knowledge Discovery in Data Bases (KDD)Extraction de Connaissances à partir de Données (ECD)
Data Mining (DM)Fouille de Données (FD)
Règles d ’associationMotifs Séquentiels
Applications
3
Organisation du cours
Les règles d’associationLes motifs séquentiels
Web Usage MiningText Mining
Conclusion
4
Recherche de règles d’associationLes règles d ’association
5
Recherche de règles d’associationLes règles d ’association
Règles de la forme :
ANTECEDENT CONSEQUENT [Support, Confiance](support et confiance sont des mesures d’intérêt définies par
l’utilisateur)
ExemplesAchat (x, « Beurre ») ET Achat (x, « Pain ») Achat(x, « Lait ») [70%,
80%]
Achat (x, « Bière ») ET Achat (x, « Gâteaux ») Achat (x, « Couches ») [30%, 80%]
Achat (x, « Caviar ») Achat(x, « Champagne ») [10%, 90%]
Age (x, « 30-39 ») ET Revenue (x, «42..50K€ ») Achat(x, « Voiture ») [1%,75%]
Cours (x, « Introduction à Unix ») Cours (x, « Programmation C ») [34%, 84 %]
6
Recherche de règles d’associationLes règles d ’association
7
Recherche de règles d’associationLes règles d ’association
InterprétationR : X Y (A%, B%)A% de toutes les transactions montrent que X et Y
ont été achetés en même temps (support de la règle) et B% des clients qui ont acheté X ont aussi acheté Y (confiance dans la règle).
Beurre, Pain Lait [70%, 80%]Bière, Gâteaux Couches [30%, 80%]Caviar Champagne [10%, 90%]Brosse à dents dentifrice [13%, 90%]« Introduction à Unix » « Programmation C » (34%,
84%)
8
Recherche de règles d’associationLes règles d ’association
Utilisation des règles d’associationBière, … Couches
Couches comme conséquentPeut être utilisé pour déterminer ce qu’il faut faire
pour augmenter les ventes
Bière comme antécédentPeut être utilisé pour voir quel produit serait affecté si
on n’arrête de vendre de la bière
Bière comme antécédent et Couche comme conséquentPeut être utilisé pour voir quels produits devraient être
vendus avec la Bière pour promouvoir la vente de couches
9
Recherche de règles d’associationLes règles d ’association
Définition des ensembles fréquentsSoit un ensemble I = {I1, I2, ..., Im} d’items, une
transaction T est définie comme les sous-ensembles d’items dans I ( I).
I = {Bière, Café, Couche, Gâteaux,Moutarde,Saucisse...}
T1 = {Café,Moutarde,Saucisse}Une transaction n’a pas de duplicats
Soit une base de données D un ensemble de n transactions et chaque transaction est nommée par un identifiant (TID).
D = {{T1, {Café,Moutarde,Saucisse}}, {T2, {Bière, Café, Gâteaux}}, ...}
10
Recherche de règles d’associationLes règles d ’association
Une représentation de la base de données D
En fait ….
01010
01001
10001
00111
01001
M
Client Pizza Lait Sucre Pommes Café
1 1 0 0 0 0
2 0 1 1 0 0
3 1 0 0 1 1
4 0 1 0 0 1
5 1 0 1 1 1
11
Recherche de règles d’associationLes règles d ’association
Définition des ensembles fréquents (suite)
Une transaction T supporte un ensemble X I si elle contient tous les items de X (X T).
T1 supporte {Café, Moutarde,Saucisse}
Support de X (supp(X)) : fraction de toutes les transactions dans D qui supportent X ; si supp(X) smin l’ensemble X est dit fréquent.
Un ensemble d’items (itemset) X de cardinalité k = |X| est appelé un k-itemset.
3-itemset : {Café, Moutarde, Saucisse}
12
Recherche de règles d’associationLes règles d ’association
Propriétés des ensembles fréquents
Propriété 1 : support pour les sous-ensembles Si A B pour les itemsets A, B alors supp(A) >=
supp(B) car toutes les transactions dans D qui supportent B supportent aussi nécessairement A.
A={Café, Moutarde}, B ={Café, Moutarde, Saucisse}
Propriété 2 : les sur-ensembles d’ensembles non fréquents sont non fréquents
Si l’itemset A ne vérifie pas le support minimum dans D, i.e. supp(A) < smin, alors tous les sur-ensembles B de A ne seront pas fréquents car supp(B) supp(A) < smin (par la propriété 1).
13
Recherche de règles d’associationLes règles d ’association
Propriétés des ensembles fréquents (2)
Propriété 3 : les sous-ensembles d’ensembles fréquents sont fréquents
Si l’itemset B est fréquent dans D, i.e. supp(B) >= smin, alors tous les sous ensembles A de B sont aussi fréquents dans D car supp(A) >= supp(B) >= smin
(propriété 1). En particulier, si A = {i1, i2, ...ik} est fréquent, tous ses (k-1)-sous-ensembles sont fréquents. L’inverse n’est pas vrai.
14
Recherche de règles d’associationLes règles d ’association
Définition des règles d’associationUne règle d’association est une implication de la forme
R : X Yoù X et Y sont des itemsets disjoints : X, Y I et X Y = .
R : Bière, Gâteaux Couches
Confiance (confidence) dans une règle R : si une transaction supporte X, elle supporte aussi Y avec une certaine probabilité appelée confiance de la règle (conf(R)).
conf( R ) = p(Y T | X T) = p(YT XT) / p(X T) = support (X U Y) / support(X)
15
Recherche de règles d’associationLes règles d ’association
Définition des règles d’association (suite)propriété conditionnelle que si T supporte X, elle
supporte aussi Y pour chaque itemset fréquent, L, rechercher les
sous-ensembles non vides X.
Pour chaque sous-ensemble X : R : X (L-X) ssi : Support(L) / Support (X) > confiance
supp(Bière,Gâteaux,Couches) conf(R) = --------------------------- >=
confiance ? supp (Bière, Gâteaux)
16
Recherche de règles d’association
Itemsets : A, B ou B, E, F
Support pour un itemset :Supp (A,B)=1Supp (A,C) = 2
Itemsets fréquentsAvec minSupp=2, {A,C} est un
itemset fréquent
Pour minSupp = 50% et minConf = 50%, nous avons les règles suivantes :
A C [50%, 50%]C A [50%, 100%]
Les règles d ’association
Trans. ID
Items
1 A, D
2 A, C
3 A, B, C
4 B, E, F
17
Recherche de règles d’associationLes règles d ’association
Propriétés des règles d’associationsPropriété 4 : pas de composition des règles
Si X Z et Y Z sont vrais dans D, X U Y Z n’est pas nécessairement vrai.
Considérons le cas où X Y = Ø et les transactions dans D supportent Z si et seulement si elles supportent X ou Y, alors l ’ensemble X U Y a un support de 0 et donc X U Y Z a une confiance de O%.
Propriété 5 : décomposition des règlesSi X U Y Z convient, X Z et Y Z peut ne pas
être vrai.T(X)
T(Z)
T(Y)
18
Recherche de règles d’associationLes règles d ’association
Propriétés des règles d’associations
Propriété 6 : pas de transitivitéSi X Y et Y Z , nous ne pouvons pas en déduire
que X Z.
Propriété 7 : déduire si une règle convientSi A (L-A) ne vérifie pas la confiance alors nous
n’avons pas B (L-B) pour les itemsets L, A, B et B A.
19
Recherche de règles d’associationLes règles d ’association
Schéma algorithmique de base
La plupart des approches utilise le même schéma algorithmique
Pour construire les règles d ’association, le support de tous les itemsets fréquents dans la base doit être calculé
L ’algorithme procède en deux phases :Première étape
Génération de tous les ensembles fréquentsSeconde Etape
Génération des règles d ’association
20
Recherche de règles d’associationLes règles d ’association
Génération de tous les ensembles fréquents
Le nombre d ’ensemble fréquent potentiel est égal à la taille du produit cartésien de tous les items …. qui croit exponentiellement en fonction du nombre d ’items considérés.
Approche naïve : recherche exhaustive et test de tous les ensemble du produit cartésien pour savoir s ’ils sont fréquents
1000 items => 21000 ensembles à considérerApproche générale :
génération de candidats supposés fréquents comptage du support des candidats au travers de la base réduire le nombre de candidats générés
21
Recherche de règles d’associationLes règles d ’association
Vers un algorithme générique :
N = 1
N-fréquents
N=N+1
N-candidats
N-fréquents détéctés
22
Recherche de règles d’associationLes règles d ’association
Construction des règles et calcul de la confiance
Pour chaque ensemble fréquent X, chaque sous-ensemble est choisi comme antécédent de la règle, le reste devenant la partie conséquent.
Comme X est fréquent, tous les sous-ensembles sont fréquents (Propriété 3) donc leur support est connu. La confiance d’une règle est calculée et une règle est conservée ou pas selon la confiance minimale.
Amélioration : (Propriété 7) quand une règle échoue, aucun sous ensembles de l ’antécédent n ’est à considérer.
23
Recherche de règles d’associationLes règles d ’association
Problèmatique initiée en 1993
Réduire le temps CPURéduire le nombre de passes sur la base (I/O)
De nombreux algorithmes ... AIS - R. Agrawal, T. Imielinski and A. Swami - ACM SIGMOD 1993
SETM - Houtsma and Swami - IBM Technical Record
APRIORI - R. Agrawal and R. Srikant - VLDB 1994
PARTITION - A. Sarasere, E. Omiecinsky and S. Navathe - VLDB 1995
SAMPLING - H. Toivonen - VLDB 1996
DIC - S. Brin, R. Motwani, J.Ulman and S. Tsur - ACM SIGMOD 1997
PrefixSpan - J. Pei, J. Han, …. - ICDE’01
SPADE - M. Zaki - Machine Learning’01
….
24
Recherche de règles d’associationLes règles d ’association
L ’algorithme AIS
Premier algorithme
Algorithme général pour la recherche d’itemsets fréquents
25
Recherche de règles d’associationLes règles d ’association
L ; /* Frequent Set */F {/* Frontier Set */
while F != doC ; /* Candidate Set */
forall tuple t D doforall itemsets f F do
if t contains f thenCf candidates itemsets
extensions of f and contained in t ;
forall cf Cf doif cf C then
cf.count++;else
cf.count = 0;C = C + cf ;
odod
odod
Parcours de la base
Génération des candidats
Mise à jour du support
26
Recherche de règles d’associationLes règles d ’association
Deux cas extrêmes
2m compteurs, i.e. tous les sous-ensembles de I ( 1 seule passe mais infaisable !! (m > 1000 items))
génération de trop de candidats : extension d'un seul item à la fois => trop de passes sur la base
Entre les deux
support attendu pour un itemset, i.e. mesurer l'estimation du support en fonction des passes précédentes et des x tuples déjà lus dans la passe courante
itemset attendu fréquent (large)itemset attendu petit
27
Recherche de règles d’associationLes règles d ’association
Procedure Extend
Extend (X : itemset, t :tuple)/ * I j last item of X */
forall items I k t (I k > I j ) do
output (XI k) ;
if (XI k) is expected to be large then
Extend (XI k, t) ;
od
28
Recherche de règles d’associationLes règles d ’association
Un exemple
Items set I = {A, B, C, D, E, F}Frontier set F = {A,B}Transaction t = {A,B,C,D,F}Cas des 1-extensions
TID A B C D Ft
A B
A B C
A B D
F
1-Extensions:
29
Recherche de règles d’associationLes règles d ’association
Avec le support attendu
ABC attendu fréquent (à continuer) ABCD attendu petit (ne pas étendre)ABCF attendu fréquent (pas étendable)ABD attendu petit (ne pas étendre)ABF attendu large (pas étendable)
ABCDF non considéré (ABCD petit)ABDF non considéré (ABD petit)ABCE, ABE non considéré (E n ’appartient pas à t)
30
Recherche de règles d’associationLes règles d ’association
Construction du frontier setidée initiale : sélectionner seulement les itemsets
fréquents maximauxmais : si ABCD et ABD sont en fait fréquents, si ABD
rejeté du frontier set alors quid de ABDF ? (complétude ?)
Frontier set pour la passe suivante = « candidats attendus petits mais en fait fréquents dans la
passe courante »les extensions de ces candidats n'ont jamais été
considérées (pas de redondance + complétude)et les autres ?
31
Recherche de règles d’associationLes règles d ’association
Construction du frontier set (2)
candidat itemset fréquents mais pas attendu petits pas dans le frontier set (toutes les extensions ont déjà
été considérées)
candidat itemset petit pas dans le frontier set (le support de l'extension ne
peut pas être supérieur à celui de l'itemset)
32
Recherche de règles d’associationLes règles d ’association
Défaut : trop de candidats générés
temps de calcul vs. accès disque
« pruning techniques » : une extension doit-elle être inclue dans l'ensemble candidat ou pas ?
utilisation de fonctions d'optimisation (prix total des transactions, ...)
33
Recherche de règles d’associationLes règles d ’association
L ’algorithme SETM
Conçu pour utiliser des opérations BD standards
Propre représentation de données : tous les itemsets supportés par une transaction sont stockés avec le TID de la transaction
Modification répétée de la base de données pour :- la génération des candidats,- le comptage du support,- la suppression des ensembles non fréquents.
34
Recherche de règles d’associationLes règles d ’association
Calcul des candidats par autojointure des itemsets fréquents :
insert into Ck+1
select a.TID, a.item1, a.item2, ...,a.itemk, b.itemk
from Lk a, Lk b
where a.TID=b.TID, a.item1=b.item1, ...a.itemk-1 = b.itemk-1, a.itemk < b.itemk
35
Recherche de règles d’associationLes règles d ’association
Base : TI D I tems1 A, C, D, E2 B, C, D3 A, B, C, D
Support minimal : 2 occurrencesL1 C2TI D I tems TI D I tems1 A 1 A,C1 C 1 A,D1 D 1 C,D2 B 2 B,C2 C J oin 2 B,D2 D --> 2 C,D3 A 3 A,B3 B 3 A,C3 C 3 A,D3 D 3 B,C
3 B,D3 C,D
36
Recherche de règles d’associationLes règles d ’association
Tri sur les items C2 TID Items3 A,B1 A,C3 A,C1 A,D3 A,D2 B,C3 B,C2 B,D3 B,D1 C,D2 C,D3 C,D
Suppression des itemsets non fréquents L2
TID Items1 A,C3 A,C1 A,D3 A,D2 B,C3 B,C2 B,D3 B,D1 C,D2 C,D3 C,D
Group by Items avec un Having
37
Recherche de règles d’associationLes règles d ’association
Tri sur les TI D
L2 C3TI D I tems TI D I tems1 A,C 1 A,C,D1 A,D 3 A,C,D1 C,D J oin 2 B,C,D2 B,C --> 3 B,C,D2 B,D2 C,D3 A,C3 A,D3 B,C3 B,D3 C,D
38
Recherche de règles d’associationLes règles d ’association
Candidats recopiés pour chaque transaction où ils interviennentGrande taille des résultats intermédiaires
Stockage explicite des itemsets (items listés par ordre ascendant)
Grandes relations intermédiaires triées deux fois pour générer le prochain ensemble de candidats
Génére moins de candidats qu'AISAvec L2 comme frontier set et pour la première transaction, AIS
génère {A,C,E}, {A,D,E} et {C,D,E} alors que E n'est pas un item fréquent
Conclusion …. Inefficace mais intéressant car facile à mettre en œuvre
39
Recherche de règles d’associationLes règles d ’association
L ’algorithme APrioriBut : minimiser les candidatsPrincipe : générer seulement les candidats pour lesquels
tous les sous-ensembles ont été déterminés fréquents
Génération des candidats réalisée avant et de manière séparée de l'étape de comptage
Génération des candidats une seule fois et non pas transaction par transaction
SETM créé plus de candidats et pour chaque transaction
40
Recherche de règles d’associationLes règles d ’association
Algorithm Apriori-geninsert into Ck+1select a.item1, a.item2, ...,a.itemk,b.itemkfrom Lk a, Lk b
where a.item1=b.item1, ...a.itemk-1 = b.itemk-1, a.itemk < b.itemk
/ * suppression des sous-ensembles qui ne sont pas dans Lk */
forall itemset c Ck+1 do
forall k-subsets s of c doif (s Lk) then delete c from Ck+1
odod
41
Recherche de règles d’associationLes règles d ’association
L4 = { {A,C,D,F}, {A,C,D,H}, ...}
génération du candidat C5 = {A,C,D,F,H}
sous-ensembles à tester : {C,D,F,H}, {A, D,F,H}, {A,C,F,H}
42
Recherche de règles d’associationLes règles d ’association
Stockage de tous les ensembles candidats dans un arbre (structure de hash-tree)
structure de tous les 3-candidats possibles pour 5 items
A B C
B CD
{C}{D}{E}
{D}{E} {E}
{C,D}{C,E}{D,E}
{D,E}
Ensemble {A,C,D}
43
Recherche de règles d’associationLes règles d ’association
Parcourir la base et compter tous les candidats possibles d ’un tuple t de la base:
Rechercher toutes les feuilles qui peuvent contenir les candidats - Hachage sur chaque item du tuple et descente dans l ’arbre des candidats
Vérification pour voir ceux effectivement supportés par t
Incrémenter leur support
44
Recherche de règles d’associationLes règles d ’association
I D I tems
1 A B
2 A B C D E F
3 B D G
4 B E G5 D F G
6 DEG
7 B E
8 B D E F
45
Recherche de règles d’associationLes règles d ’association
C1 Support
A 2
B 6
C 1
D 5E 5
F 3
G 4
L1 = {{A},{B},{C},{D},{E},{F},{G}} 1-itemsets fréquents
Support minimal = 1
46
Recherche de règles d’associationLes règles d ’association
C2 Support C2 SupportAB 2 CD 1AC 1 CE 1AD 1 CF 1AE 1 CG 0AF 1 DE 3AG 0 DF 3BC 1 DG 3BD 3 EF 2BE 4 EG 2BF 2 FG 1BG 2
2-itemsets fréquents L2 = {{A,B},{A,C},{A,D},{A,E},{A,F},{B,C},{B,D},{B,E},{B,F},{B,G},{C,D},{C,E},{C,F},{D,E},{D,F},{D,G},{E,F},{E,G},{F,G}}
47
Recherche de règles d’associationLes règles d ’association
C3 Support C3 SupportABC 1 BDE 2ABD 1 BDF 2ABE 1 BDG 1ABF 1 BEF 2ACD 1 BEG 1ACE 1 BFG 0
… … … …BCF 1 EFG 0
3-itemsets fréquents L3 = {{A,B,C},{A,B,D},{A,B,E},{A,B,F},{A,C,D}, … {D,F,G}}
{B,C,G} élagué par Apriori-Gen car {C, G} n ’appartient pas à L2
48
Recherche de règles d’associationLes règles d ’association
C4 Support C3 SupportABCD 1 ACEF 1ABCE 1 ADEF 1ABCF 1 BCDE 1ABDE 1 BCDF 1ABDF 1 BCEF 1ABEF 1 BDEF 2ACDE 1 BDEG 0ACDF 1 CDEF 0
4-itemsets fréquents L4 = {{A,B,C,D},{A,B,C,E},{A,B,C,F}, … {C,D,E,F}}
{B,D,F,G}, {B,E,F,G} élagués car {B,F,G} n ’appartient pas à L3
{D,E,F,G} élagué car {E,F,G} n ’appartient pas à L3
49
Recherche de règles d’associationLes règles d ’association
C6 SupportABCDEF 1
6-itemsets fréquents L6 = {{A,B,C,D,E,F}
C7 = {} => l ’algorithme se termine
=> 7 balayages pour déterminer tous les itemsets fréquents
50
Recherche de règles d’associationLes règles d ’association
Avantage : beaucoup moins de candidats générés et très efficace
Problème : trop de lecture de la baseAPrioriTid (stockage des candidats et des transactions
comme SETM)APrioriHybrid = Apriori + AprioriTid
La référence
51
Recherche de règles d’associationLes règles d ’association
L ’algorithme Partition
But : Réduire le nombre de passes Principe :
partitionner la base de manière à ce que chaque partition tienne en mémoire centrale (utilisation d ’Apriori pour chaque partition) - 2 passes sur la base
Phase 1 : Division de la base; Traiter les partitions une par une : les
itemsets fréquents sont fusionnés pour générer l ’ensemble de tous
les itemsets fréquents potentiels
Phase 2 : le support de ces itemsets est généré pour identifier les
itemsets fréquents réels
52
Recherche de règles d’associationLes règles d ’association
L ’algorithme DIC (Dynamic Itemset Counting)
But : réduction du nombre de balayage de la base Lecture par blocs de M transactions Essayer de générer le plus vite possible, i.e. à la fin de M, des (k+1)-
itemsets pour les rechercher dans les prochaines M transactions Par exemple, pour 40 000 transactions avec M = 10 000
compter les 1-itemsets dans les 40 000commencer à compter les 2-itemsets après lecture des 10 000
transactions3-itemsets après les 20 000 transactions…1,5 passages au lieu des 3 d ’Apriori
53
Recherche de règles d’associationLes règles d ’association
tran
sact
ion
s
4-itemsets
2-itemsets
3-itemsets4-itemsets
1-itemsets
2-itemsets 3-itemsets
54
Recherche de règles d’associationLes règles d ’association
L ’algorithme SAMPLING
Idée : prendre un ensemble aléatoire qui réside en mémoire centrale et rechercher tous les itemsets fréquents
Très efficace : 1 passe, 2 passes au pire
Basée sur la bordure négativeR={A,B,C,D,E,F}pour un support minimum :
{A}, {B}, {C}, {F}, {A,B}, {A,C}, {A,F}, {C,F}, {A,C,F}la bordure négative = {{B,C}, {B,F}, {D}, {E}}
principe : étant donnée un ensemble de résultats, la bordure négative contient les itemsets « les plus proches » qui pourraient être fréquents (par exemple, {B,C} n ’est pas dans le résultat mais ses sous-ensembles oui)
55
Recherche de règles d’associationLes règles d ’association
Algorithme
support minimum, petit support minimum, une base et un échantillon de la base
1 - prendre un échantillon de la base
2 - Calculer les fréquents avec petit support minumum en mémoire centrale
3 - Evaluer la fréquence des itemsets fréquents et de la bordure négative sur le reste de la base
4 - Retourner le résultat et les éventuels manquesD = 10 millions de tuples - A ... F - support minimum = 2% - Echantillon s de 20 000 tuples petit support
minimum = 1,5%
Fréquents trouvés sur l ’échantillon pour 1,5% : F={{A,B,C},{A,C,F},{A,D},{B,D}}Bordure négative = BD={{B,F},{C,D},{D,F},{E}}
Evaluer F et BD sur le reste de la base avec 2%
1 - on trouve {A,B},{A,C,F} en une passe2 - si {B,F} devient fréquent sur D => manque peut être {A,B,F} => reporter l ’erreur et effectuer une seconde passe
56
Recherche de règles d’associationLes règles d ’association
Depuis 2000 : Hypothèse forte « La base peut tenir en mémoire »
Constat : génération d ’un trop grand nombre de candidats
s ’il y a 104 1-itemset => génération de 107 candidats 2-itemsets
Pour un fréquent de 100, il faut générer plus de 1030 candidats au total
Est-il possible de proposer une méthode qui évite de générer des candidats ?
La réponse : FP-Tree
57
Recherche de règles d’associationLes règles d ’association
null
I2:7
I1:4
I5:1
I5:1
I3:2
I4:1
I3:2 I4:1
I1:2
I3:2
1 - Parcours de la base pour rechercher les 1-fréquents2 - Tri des fréquents dans l ’ordre décroissant3 - Construction de l ’arbre
58
Recherche de règles d’associationLes règles d ’association
null
I2:7
I1:4
I5:1
I5:1
I3:2
I4:1
I3:2 I4:1
I1:2
I3:2
I2
I1
I3
I4
I5
7
6
6
2
2
59
Recherche de règles d’associationLes règles d ’association
null
I2:7
I1:4
I5:1
I5:1
I3:2
I4:1
I3:2 I4:1
I1:2
I3:2
On commence par ceux dont le support est le plus faible
Pour I5chemins pour I5 <I2 I1 I5:1> et <I2 I1 I3 I5:1>en considérant I5 comme suffixe on a :
<I2 I1 : 1> <I2 I1 I3 : 1>=> <I2 : 2, I1 : 2> (support I3 = 1)
Génération : I2 I5 : 2 I1 I5 : 2 I2 I1 I5 : 2
Pour I4Avec I4 comme suffixe
<I2 I1 : 1> et <I2 : 1> => fréquent I2 I4 : 2
Pour I3Avec I3 comme suffixe
<I2 I1 : 2>, <I2 : 2>, <I1 : 1>=> fréquents : I2 I3 : 4 I1 I3 : 2 I2 I1 I3 : 2
...Support minimal = 1
60
Recherche de règles d’associationLes règles d ’association
Des règles plus générales
Les règles négatives : Expr(Ci) Expr(Cj) avec ET, OU, NOT
Les règles multi-attributs :Associent des valeurs d ’attributs distinctstéléphone : source = « New-York » Cible =
« Paris »Les règles à attributs variables :
Age [x,y] => Salaire > 45 K€ (5%; 30%)Les règles avec généralisation
Associée à une taxonomieLes motifs séquentiels
A Puis B Puis C
61
Recherche de règles d’associationLes règles d ’association
Approches très efficaces maintenantAttention : les règles d'association sont faciles à
comprendre mais attention leur utilité est moins évidente3 cas de règles
La règle utile contenant des informations de qualité qui peuvent être mises en pratique
ex : le Jeudi, les clients des épiceries achètent en même temps de la bière et des couches
Les résultats triviaux qui sont connus par quiconqueex : les client des épiceries achètent en même temps
du pain et du beurreLes résultats inexplicables qui sont difficiles à situer et
donc à expliquerex : lors de l'ouverture d'une quincaillerie, parmi les
articles les plus vendus on trouve les abattants de toilette
62
Recherche de règles d’associationLes règles d ’association
DBMiner (www.dbminer.com)
63
Recherche de règles d’associationLes règles d ’association
DBMiner (www.dbminer.com)
64
Recherche de règles d’associationLes règles d ’association
Intelligent Miner (www.ibm.com)
65
Organisation du cours
Les règles d’associationLes motifs séquentiels
Web Usage MiningText Mining
Conclusion
66
Recherche de motifs séquentielsLes motifs séquentiels
Même problématique mais avec le temps
Item : « un article » Transaction : un client + un itemset + une estampille
temporelleSéquence : liste ordonnée d’itemsetsSéquence de données : « activité du client »
Soit T1, T2, … Tn, les transactions du client C, la séquence de données de C est :
<itemset(T1) itemset(T2) …. itemset(Tn)>
Support minimal : nombre minimum d’occurrences d’un motif séquentiel pour être considéré comme fréquent
Attention l’occurrence n’est prise en compte qu’une fois dans la séquence
67
Recherche de motifs séquentielsLes motifs séquentiels
Inclusion :Soient S1 = <a1 a2 … an> et S2 = <b1 b2 … bn>
S1 S2 ssi
i1 < i2 < … < in / a1 bi1, …. an bin
Exemples :
S1 = <(10) (20 30) (40) (20)>
S2 = <(20) (50)> S1
S3 = <(20) (30)> n’est pas incluse dans S1
68
Clients Date1 Date2 Date3 Date4
C1 10 20 30 20 40 50 10 20 60 10 40
C2 10 20 30 10 20 30 20 30 60
C3 20 30 50 10 40 60 10 20 30
C4 10 30 60 20 40 10 20 60 50
Recherche de motifs séquentielsLes motifs séquentiels
Support = 60% (3 clients) => <(10 30) (20) (20 60)>
69
Recherche de motifs séquentiels
<(1 2) (3) (5)><(1 2) (3 4)>
<(1 2) (3)>< (2) (3 4)>
<(1 2) (3)>< (2) (3) (5)>
Génération des candidats pour les motifs séquentiels
Les motifs séquentiels
70
Recherche de motifs séquentiels
30
Nécessité d ’une structure efficace : structure de hachage
Root
10
30<(30 40 50)><(30) (40 60)>
40
<(40 50) (30)><(40 50) (40)>
S = <(10) (30) (10 40)>
40<(10) (10 40)><(10 40) (20)>
<(10) (30) (40)><(10) (30 40)>
Les motifs séquentiels
71
Recherche de motifs séquentiels
Vers une structure plus efficace : Structure prefix tree (PSP) : Exploitation des préfixes communs que présentent les candidats
<(10) (30) (20)><(10) (30 40)><(10) (40 10)>
root
10 20 30
30 40 20 40 10
20 40 10 10 30 40
40
<(30 50 40 10) (30) (20 10)>
Les motifs séquentiels
72
Recherche de motifs séquentiels
Génération des candidats de taille 2
10 20 30 40
Root
10 20 30 40
Root
10 20 20 30 30 40 40 20 10 10...
Les motifs séquentiels
73
Recherche de motifs séquentiels
Génération des candidats de taille > 2
10
20
30 40
Root
40
20
40 10
10
20
30 40
Root
30 40
20
40 10
20 40 10 10 30 40
Les motifs séquentiels
74
Recherche de motifs séquentiels
Les motifs séquentiels conviennent pour un grand nombre d ’applications
mais pour certains domaines d ’applications il est nécessaire de limiter les résultats
ex : corrélations entre achat du caviar le 1er janvier 2002 et de champagne le 31 décembre 2002
Vers les motifs séquentiels généraliséswindowSize : regrouper des événementsminGap : considérer des événements comme trop prochesmaxGap : considérer des événements comme trop
éloignés
Les motifs séquentiels
75
Recherche de motifs séquentiels
Séquence de données : d = <1(1) 2(2 3) 3(4) 4(5 6) 5(7)>
Candidat : C = <(1 2 3 4) (5 6 7)>Avec windowSize = 3, minGap=0, maxGap = 5, d devient
<(1 2 3 4) (5 6 7)> Donc C est inclus dans d
Candidat : C = <(1 2 3) (6 7)>Avec windowSize = 1, minGap=3, maxGap = 4, d devient
<(1 2 3) (4) (5 6 7)> or minGap pas respecté entre 3 et 5Donc C n’est pas inclus dans d
Les motifs séquentiels
76
Recherche de motifs séquentiels
windowSize=7 jours : <(Foundation, Ringworld) (Ringworld Engineers)>
Support = 50% : <(Ringworld) (Ringworld Engineers)> et <(Foundation) (Ringworld Engineers)>
Client Date I tems
C1 1 Ringworld
C1 2 Foundation
C1 15 Ringworld Engineers, SecondFoundation
C2 1 Foundation, Ringworld
C2 20 Foundation and Empire
C2 50 Ringworld Engineers
Les motifs séquentiels
77
Recherche de motifs séquentiels
Un autre exemple
Client Date I tems
C1 1 10
C1 7 20
C1 13 30
C1 17 40
C1 18 50
C1 24 60
<(10) (20) (30) (50) (60)><(10) (20) (30) (40) (60)><(10) (20) (30) (40 50) (60)><(10) (20) (30 40) (60)<(10) (20) (30 40 50) (60)>
minGap=1windowSize=5
<(10) (20) (30) (50) (60)><(10) (20) (30) (40) (60)><(10) (20) (30) (40 50) (60)><(10) (20) (30 40) (60)><(10) (20) (30 40 50) (60)>
Les motifs séquentiels
78
Date 1 7 13 17 18 24
C 1 2 3 4 5 6
windowSize = 5, minGap = 1
Via minGap<(1) (2) (3) (4) (6)><(1) (2) (3) (5) (6)>Puis avec windowSize<(1) (2) (3) (4 5) (6)><(1) (2) (3 4) (6)><(1) (2) (3 4 5) (6)>En fait:<(1) (2) (3) (4 5) (6)> et <(1) (2) (3 4 5) (6)>
Recherche de motifs séquentielsLes motifs séquentiels
79
Date 1 7 13 17 18 24
C 1 2 3 4 5 6
Recherche de motifs séquentielsLes motifs séquentiels
1 2 3 4 5 6
minGap
4 5
3 4
3 4 5
80
Date 1 7 13 17 18 24
C 1 2 3 4 5 6
Recherche de motifs séquentielsLes motifs séquentiels
1 2 3 4 5 6
minGap
4 5
3 4
3 4 5
Un chemin = une séquenceTous les chemins mais quid des inclusions ?
81
Recherche de motifs séquentielsLes motifs séquentiels
1 2 3 4 5 6
minGap
4 5
3 4
3 4 5
82
Recherche de motifs séquentielsLes motifs séquentiels
1 2 3 4
5
6
4 5
3 4
3 4 5
Regrouper ensemble les nœuds de même origine
83
Recherche de motifs séquentielsLes motifs séquentiels
1 2 3 6
4 5
3 4 5
Supprimer les nœuds inclus ayant même destination
84
Recherche de motifs séquentielsLes motifs séquentiels
1 2 3 64 5
3 4 5
<(1) (2) (3) (4 5) (6)> et <(1) (2) (3 4 5) (6)>
85
Recherche de motifs séquentielsLes motifs séquentiels
S
S {S1, S2, .. Sn}
DB
DB
GTC
AVANT
APRES
Arbre des candidats
Arbre des candidats
86
Organisation du cours
Les règles d’associationLes motifs séquentiels
Web Usage MiningText Mining
Conclusion
87
Web Usage MiningApplications
Analyse de l’usage des visiteurs sur un site Web
Les pages contiennent l’information
Les liens sont des « routes » (hyperliens)
Comment les personnes naviguent-elles sur Internet ?Web Usage Mining (Clickstream Analysis)
Information sur les chemins de navigation disponibles dans des fichiers logs.
Principe : intégrer et « fouiller » ces données pour en
produire de l’information et de la connaissance
88
Web Usage MiningApplications
Pourquoi analyse l’usage des sites Web ?
La connaissance sur la manière dont les visiteurs utilisent un site Web permet de :
Fournir une aide pour réorganiser siteAider le concepteur à positionner l’information
importante que les visiteurs recherchent.Précharger et cacher les pagesFournir des sites adaptatifs (personnalisation)Eviter le « zapping »
Utile dans le cas du e-commerce
89
Web Usage Mining
Statistiquesgénérales
Perf ormancedu site
Retenir lesclients
Analyse ducontenu
Groupementdes clients
Campagneadaptée
Pointd’entrée
Ciblages desclients
Campagneciblée
Parcours Comportementdes clients
Modifi cationdynamique
Exemple d’utilisation
Applications
90
Web Usage Mining
Un exemple d’outil : Analog (Web Log File Analyser)www.analog.cx
Statistiques générales :Nombre de hitsQuelle est la page la plus populaire du site ?Qui a visité le site ?Qu’est ce qui a été téléchargé ?Quels sont les mots clés utilisés pour venir sur le site ?
Applications
91
Web Usage MiningApplications
« 75% des parisiens qui achètent une raquette de tennis achètent trois mois après des chaussures »
Modification dynamique
30%Promo
92
Web Usage MiningApplications
93
Web Usage MiningApplications
94
Web Usage Mining
Sources de données Utilisation de fichiers logs Les logs sont enregistrés dans quatre types de fichiers :
fichier de logs de transfert : il enregistre tous les transferts de fichiers résultant d’une requête à un serveur ;
fichier de logs d’erreur : il conserve la trace des incidents survenus dans le dialogue avec le serveur (ex : URL erronée, transfert interrompu, ...) ;
fichier de logs référentiels : il indique le site et la page de provenance et d’arrivée ; fichier de logs d’agent : il archive les informations sur l’équipement des utilisateurs (ex : caractéristiques du navigateur, ....)
Mais aussi cookies, bases de données des clients, ….
Applications
95
Web Usage MiningApplications
96
Web Usage Mining
Préparation des donnéesVérification du suffixe (gif, jpeg, …)Elimination des robots (agents des moteurs)
Identification de l’utilisateurTout n’est pas dans le fichier Access Log Utilisation d’heuristiques :
Si une page est demandée et qu’elle n’est pas directement liée aux autres pages, il est probable qu’il existe différents utilisateurs sur la même machine
Utilisation des informations sur l’IP, le nom de la machine, le navigateur, des informations temporelles …
Applications
97
Web Usage Mining
IdentificationComment identifier un unique visiteur ?
Problèmes : Les ID des utilisateurs sont souvent supprimés pour
des raisons de sécuritéLes IP individuelles sont parfois cachées par les
proxysLes caches des proxy et du côté clients font que les
access logs ne sont pas complets
Solutions actuelles :Enregistrement de l’utilisateur – pratique ??Cookies – difficile ??« Cache busting » - augmente le traffic sur le réseau
(inutile avec certains proxy)
Applications
98
Web Usage Mining
SessionsComment identifier/définir une transaction d’un
visiteur ?
« Time Oriented »Durée totale d’une session : pas plus de 30 minutesPar temps passé sur une page : pas plus de 10
minutes/page
« Navigation Oriented »Le « referrer » est la page précédente, ouLe « referrer » n’est pas défini mais demandé dans
les 10 secondes, ouLe lien de la page précédente à la page courage dans
le site web
Applications
99
Web Usage Mining
Architecture type
Applications
FichiersAccess Log
Pré-traitementFouille
de Données
Règles d’AssociationsMotifs séquentiels
Classification
Mécanisme de requêtes
RepositoryNouvellesDonnées
DonnéesExtérieures
100
Web Usage MiningApplications
Limite de l ’approche :Analyse en différée … problème de la pertinence des
résultats
Vers une approche « temps réel »
Pourquoi ne pas extraire les motifs séquentiels avec une méta-heuristique ?
Inspiration des algorithmes génétiques
Principe assez similaire
101
Web Usage MiningApplications
Séquence fréquente
Population de candidats
Candidats évalués
Séquences fréquentes
Nouvelle population de Séquences fréquentes
Opérateurs de voisinage
+
DB
102
Web Usage MiningApplications
M1
M2
Mn
Séquence fréquente
Population de candidats
Candidats évalués
Séquences fréquentes
Nouvelle population de Séquences fréquentes
Opérateurs de voisinage
+
103
Web Usage MiningApplications
Opérateurs de voisinage Ajout d ’item
<(a) (b) (d)> avec l ’item c< (c) (a) (b) (d)> <(a) (c) (b) (d)><(a) (b) (c) (d)> <(a) (b) (d) (c)>
Nouvel item fréquent : candidats de taille 2 Croisement
<(a) (b) (g) (h)> et <(e) (f) ( c) (d)><(a) (b) ( c) (d)> <(e) (f) (g) (h)>
Croisement amélioré la coupure se fait après le plus long préfixe commun
Dernier croisement la seconde séquence est choisie pour son préfixe
Extension de séquencemélange entre ajout d ’item et nouvel item fréquent
104
Web Usage MiningApplications
Disponibilité immédiateen tant que pré-calcul ou comme résultat direct
Un nouveau type de séquence« la période du 02 au 07 janvier abrite le fréquent
<(x) (y) (z), avec un support de 70% »Résultats dédiés aux utilisateurs connectésPuissance de calcul inépuisableData Mining intéractifExtraction de fréquents de grande taille
105
Web Content MiningApplications
Idée principale : Rechercher de sous-structures communes dans
des bases de données d’objets complexesApplications :
Indication pour interroger/naviguer dans les sources d’information
Information générale sur le contenuaide à la construction d’index ou de vuesdécouverte de motifs d’intérêt ou d’accès (Web Usage
Mining)aide à la rétro-conception
106
Web Content MiningApplications
Considérer un « graphe » comme une séquence
Person:{identity:{id,address:<street,zipcode>}}
B:Modify(order)
E:Modify(client.credit) F:Modify(client.trusted)
C:Modify(amount)
G:Modify(order.status)H:Modify(client.trusted)
t1
<A,B,<E,<G,H>,F,C>
(LA1) (LB1) (LE2) (LG3) (LH3) (LF2) (LC1)
(Sidentity1) (Sid2 Saddress2) (Lstreet3) (Lzipcode3)
address
identity
zipcodestreet
id
Person
107
Organisation du cours
Les règles d’associationLes motifs séquentiels
Web Usage MiningText Mining
Conclusion
108
Text Mining
Qu'est ce que le Text MiningL'extraction d'information et de connaissance à partir
de données textuelles (découvertes de tendances, classification/organisation, ….)
Les bases de données textuelles sont omniprésentesBases de données de bibliothèques, bases de données
de documents, mails, WWW, …Les données textuelles sont structurées ou semi-
structuréesLa quantité de données textuelles augmente très
rapidementLe texte est facile à produire L'interconnexion de réseau permet un accès facile (le
Web est une base de texte dynamique, interconnectée, énorme)
Applications
109
Text Mining
Un mot sur : Information RetrievalIR : un domaine développé en parallèle des bases de
donnéesL'information est organisée dans (un grand nombres de)
documentIR : localisé les documents pertinents en se basant sur
l'entrée de l'utilisateur (mots clés ou documents exemples)Problème : l'information supplémentaire
« L 'analyste a besoin d'avoir la bonne information »IR n'est pas suffisant
Trop de documents peuvent contenir l'information utileL'analyste peut même ne pas savoir ce qu'il attend (!)Le problème n'est pas forcément de trouver les bons
documents mais les modèles/tendances parmi plusieurs documents
Applications
110
Text Mining
Classification automatique Classification automatique d'un grand nombre de
documents (pages Web, mails, fichiers textuels) basé sur un échantillon de documents pré-classifié
Mise en oeuvre Echantillon : des experts génèrent l'échantillon Classification : l'ordinateur découvre les règles de
classification Application : les règles découvertes peuvent être utilisées
pour classer des nouveaux documents et les affecter à la bonne classe
Quelques problèmes Synonymie : un mot T peut ne pas apparaître dans un
document mais si le document est très lié à T (data mining / software product)
Polysémie : le même mot peut avoir plusieurs sens (mining)
Applications
111
Text Mining
Analyse d'association basée sur des mots clésRechercher des associations/corrélations parmi des
mots clés ou des phrasesMise en œuvre
Pré-traitement des données : parser, supprimer les mots inutiles (le, la, …) => prise en compte d'une analyse morpho-syntaxique (lemmatiseur)
Considérer que chaque document correspond à un identifiant de transaction : (document_id, {ensemble de mots clés})
Appliquer des algorithmes de recherche de règles d'association
Quelques problèmesLes mots inutiles (ordinateur ? Utile ?)Les associations de mots, phrase, paragraphe, ...
Applications
112
Text Mining
Analyse de tendancesRechercher des tendances dans de nombreux
documentsMise en œuvre
Pré-traitement : cf précédent mais attention à la place des mots => l'ordre est important
Considérer que chaque document correspond à un identifiant de transaction : (document_id, <phrases simplifiées : ensemble de mots ordonnés>)
Appliquer des algorithmes de recherche de motifs séquentiels
Générer l'historique des phrasesRecherche les phrases qui correspondent à des
tendances
Applications
113
Text Mining
Principes Un mot : (m)Une phrase : <(m1) (m2) (m3) … (mn)>Grâce aux paramètres (WindowSize, MaxGap,
MinGap) grande latitude dans la définition d'une phraseUne phrase = une phraseUne phrase = un ensemble de mots prochesUne phrase = un paragraphe
(m1) (m2) (mn)
minGap maxGap
Applications
WindowSize
114
Text Mining
Gérer l'historique des phrasesPartitionner les documents en fonction de leur
estampilleex : année pour les brevets, mois pour des documents
sur le WebPour chaque partition, génération des ensembles
fréquents de phrases
maintenance de l'historique des supports pour chaque phrase
Interrogation de l'historique des phrases pour savoir celles qui correspondent à une certaine tendance (tendance récente à monter, transition récente, résurgence d'usage, ….)
Applications
115
Text Mining
Un exemple de tendances
Brevets classés dans la catégorie « Induced Nuclear Reactions: Processes, Systems and Elements »
0
0,5
1
1,5
2
2,5
3
3,5
4
4,5
1990 1991 1992 1993 1994Période
Su
pp
ort
(%
)
<(removal) (system)
<(heat) (removal)>
<(zirconium) (based) (alloy)>
<(emergency) (cooling)>
<(feed) (water)>
<(fuel) (cladding)>
Applications
116
Conclusion
Les points forts :Elle produit des résultats clairs et explicites.
Elle est adaptée à l’exploitation non dirigée des données
Elle travaille sur des données de taille variableLes calculs qu’elle utilise sont simples à comprendre
Les points faibles :
Le volume des calculs augmente exponentiellement en fonction de la taille du problèmeDifficulté de trouver le bon nombre d’articles à utiliser
Depuis 1996, problème de recherche ouvert : gestion dynamique du support, données fortement corrélées, incrémental
Conclusion
117
ConclusionConclusion
www.lgi2p.ema.fr/~poncelet
118
ConclusionConclusion
119
ConclusionConclusion
120
Conclusion
Une URL KDD Mine
http://www.kdnuggets.com
Quelques outilsIntelligent Miner (www.ibm.com)Entreprise Miner (SAS Institute)MineSet (Silicon Graphics Inc.)Clementine (Integral Solutions Ltd, racheté par SPSS)DBMiner (www.dbminer.com)…
Le projet Weka (librairie de classes Java)http://www.cs.waikato.ac.nz/ml/weka
Conclusion
121
Recherche de règles d’associationLes règles d ’association
Confiance dans la Confiance ? Rappel : AB, P(A|B), i.e. P(A,B)/P(A) Problème : P(B) est ignoré
P(A,B)/P(A) peut être égal à P(B) (i.e. l ’occurrence de B n ’est pas relié à A) et peut être assez grand pour que la règle fonctionne
10 000 transactions (6000 jeux vidéos, 7500 DVD, 4000 jeux vidéos et DVD), support minimal = 30% et confiance = 60%
jeux vidéos DVD (40%, 66%) ASSOCIATION FORTE support =4000/10000=40%confiance = 4000/6000=66% =>Pourtant la probabilité d ’acheter des DVD est de 75% (>>
66%)En fait les jeux vidéos et les DVD sont « négativement »
associés car l ’achat d ’un de ces items diminue la probabilité d ’achat de l ’autre