121
1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet [email protected] Centre de Recherche LGI2P Ecole des Mines d’Alès

1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet [email protected]

Embed Size (px)

Citation preview

Page 1: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 2: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 3: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

3

Organisation du cours

Les règles d’associationLes motifs séquentiels

Web Usage MiningText Mining

Conclusion

Page 4: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

4

Recherche de règles d’associationLes règles d ’association

Page 5: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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 %]

Page 6: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

6

Recherche de règles d’associationLes règles d ’association

Page 7: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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%)

Page 8: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 9: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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}}, ...}

Page 10: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 11: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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}

Page 12: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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).

Page 13: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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.

Page 14: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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)

Page 15: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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)

Page 16: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 17: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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)

Page 18: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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.

Page 19: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 20: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 21: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 22: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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.

Page 23: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

….

Page 24: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 25: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 26: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 27: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 28: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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:

Page 29: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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)

Page 30: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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 ?

Page 31: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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)

Page 32: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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, ...)

Page 33: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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.

Page 34: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 35: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 36: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 37: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 38: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 39: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 40: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 41: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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}

Page 42: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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}

Page 43: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 44: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 45: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 46: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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}}

Page 47: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 48: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 49: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 50: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 51: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 52: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 53: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 54: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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)

Page 55: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 56: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 57: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 58: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 59: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 60: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 61: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 62: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

62

Recherche de règles d’associationLes règles d ’association

DBMiner (www.dbminer.com)

Page 63: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

63

Recherche de règles d’associationLes règles d ’association

DBMiner (www.dbminer.com)

Page 64: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

64

Recherche de règles d’associationLes règles d ’association

Intelligent Miner (www.ibm.com)

Page 65: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

65

Organisation du cours

Les règles d’associationLes motifs séquentiels

Web Usage MiningText Mining

Conclusion

Page 66: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 67: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 68: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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)>

Page 69: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 70: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 71: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 72: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 73: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 74: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 75: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 76: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 77: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 78: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 79: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 80: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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 ?

Page 81: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

81

Recherche de motifs séquentielsLes motifs séquentiels

1 2 3 4 5 6

minGap

4 5

3 4

3 4 5

Page 82: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 83: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 84: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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)>

Page 85: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 86: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

86

Organisation du cours

Les règles d’associationLes motifs séquentiels

Web Usage MiningText Mining

Conclusion

Page 87: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 88: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 89: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 90: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 91: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 92: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

92

Web Usage MiningApplications

Page 93: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

93

Web Usage MiningApplications

Page 94: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 95: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

95

Web Usage MiningApplications

Page 96: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 97: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 98: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 99: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 100: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 101: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 102: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

+

Page 103: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 104: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 105: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 106: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 107: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

107

Organisation du cours

Les règles d’associationLes motifs séquentiels

Web Usage MiningText Mining

Conclusion

Page 108: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 109: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 110: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 111: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 112: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 113: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 114: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 115: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 116: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 117: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

117

ConclusionConclusion

www.lgi2p.ema.fr/~poncelet

Page 118: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

118

ConclusionConclusion

Page 119: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

119

ConclusionConclusion

Page 120: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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

Page 121: 1 Extraction de Connaissances à partir de Données et Fouille de Données Knowledge Discovery in Data Bases and Data Mining Pascal Poncelet Pascal.Poncelet@ema.fr

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