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 Centre de Recherche LGI2P Ecole des Mines d’Alès
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 ’association Motifs Séquentiels Applications
Organisation du cours Les règles d’association Les motifs séquentiels Web Usage Mining Text Mining Conclusion
Recherche de règles d’association Les règles d ’association
Recherche de règles d’association Les 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) Exemples Achat (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 %]
Recherche de règles d’association Les règles d ’association
Recherche de règles d’association Les règles d ’association Interprétation R : 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%)
Recherche de règles d’association Les règles d ’association Utilisation des règles d’association Bière, … Couches Couches comme conséquent Peut être utilisé pour déterminer ce qu’il faut faire pour augmenter les ventes Bière comme antécédent Peut ê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équent Peut être utilisé pour voir quels produits devraient être vendus avec la Bière pour promouvoir la vente de couches
Recherche de règles d’association Les règles d ’association Définition des ensembles fréquents Soit 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}}, ...}
Recherche de règles d’association Les règles d ’association Une représentation de la base de données D En fait ….
Recherche de règles d’association Les 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}
Recherche de règles d’association Les 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).
Recherche de règles d’association Les 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.
Recherche de règles d’association Les règles d ’association Définition des règles d’association Une règle d’association est une implication de la forme R : X ® Y où 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(YÍT Ù XÍT) / p(X Í T) = support (X U Y) / support(X)
Recherche de règles d’association Les 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)
Recherche de règles d’association Les règles d ’association Itemsets : A, B ou B, E, F Support pour un itemset : Supp (A,B)=1 Supp (A,C) = 2 Itemsets fréquents Avec 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%] Trans. ID Items 1 A, D 2 A, C 3 A, B, C 4 B, E, F
Recherche de règles d’association Les règles d ’association Propriétés des règles d’associations Proprié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ègles Si X U Y ® Z convient, X ® Z et Y ® Z peut ne pas être vrai. T(X) T(Y) T(Z)
Recherche de règles d’association Les 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 convient Si 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.
Recherche de règles d’association Les 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équents Seconde Etape Génération des règles d ’association
Recherche de règles d’association Les 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érer Approche 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
Recherche de règles d’association Les règles d ’association Vers un algorithme générique : N = 1 N=N+1 N-fréquents N-candidats N-fréquents détéctés
Recherche de règles d’association Les 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.
Recherche de règles d’association Les règles d ’association Problèmatique initiée en 1993 Réduire le temps CPU Ré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 ….
Recherche de règles d’association Les règles d ’association L ’algorithme AIS Premier algorithme Algorithme général pour la recherche d’itemsets fréquents
Recherche de règles d’association Les règles d ’association Parcours de la base Génération des candidats Mise à jour du support
Recherche de règles d’association Les 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
Recherche de règles d’association Les règles d ’association
Recherche de règles d’association Les 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 t TID A B C D F F A B A B C 1-Extensions: A B D
Recherche de règles d’association Les 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)
Recherche de règles d’association Les règles d ’association Construction du frontier set idée initiale : sélectionner seulement les itemsets fréquents maximaux mais : 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 ?
Recherche de règles d’association Les 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)
Recherche de règles d’association Les 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, ...)
Recherche de règles d’association Les 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.
Recherche de règles d’association Les 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
Recherche de règles d’association Les règles d ’association
Recherche de règles d’association Les règles d ’association Group by Items avec un Having Tri sur les items C2 TID Items 3 A,B 1 A,C 3 A,C 1 A,D 3 A,D 2 B,C 3 B,C 2 B,D 3 B,D 1 C,D 2 C,D 3 C,D Suppression des itemsets non fréquents L2 TID Items 1 A,C 3 A,C 1 A,D 3 A,D 2 B,C 3 B,C 2 B,D 3 B,D 1 C,D 2 C,D 3 C,D
Recherche de règles d’association Les règles d ’association
Recherche de règles d’association Les règles d ’association Candidats recopiés pour chaque transaction où ils interviennent Grande 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'AIS Avec 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
Recherche de règles d’association Les règles d ’association L ’algorithme APriori But : minimiser les candidats Principe : 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
Recherche de règles d’association Les règles d ’association
Recherche de règles d’association Les 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}
Recherche de règles d’association Les 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 C B {C,D} {C,E} {D,E} {D,E} D B C {C} {D} {E} {D} {E} {E} Ensemble {A,C,D}
Recherche de règles d’association Les 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
Recherche de règles d’association Les règles d ’association
Recherche de règles d’association Les règles d ’association Support minimal = 1 L1 = {{A},{B},{C},{D},{E},{F},{G}} 1-itemsets fréquents
Recherche de règles d’association Les règles d ’association 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}}
Recherche de règles d’association Les règles d ’association 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
Recherche de règles d’association Les règles d ’association 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
Recherche de règles d’association Les règles d ’association 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
Recherche de règles d’association Les règles d ’association Avantage : beaucoup moins de candidats générés et très efficace Problème : trop de lecture de la base APrioriTid (stockage des candidats et des transactions comme SETM) APrioriHybrid = Apriori + AprioriTid La référence
Recherche de règles d’association Les 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
Recherche de règles d’association Les 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 000 commencer à compter les 2-itemsets après lecture des 10 000 transactions 3-itemsets après les 20 000 transactions … 1,5 passages au lieu des 3 d ’Apriori
Recherche de règles d’association Les règles d ’association 2-itemsets 3-itemsets 4-itemsets transactions 4-itemsets 1-itemsets 2-itemsets 3-itemsets
Recherche de règles d’association Les 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égative R={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)
Recherche de règles d’association Les 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 manques D = 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 passe 2 - si {B,F} devient fréquent sur D => manque peut être {A,B,F} => reporter l ’erreur et effectuer une seconde passe
Recherche de règles d’association Les 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
Recherche de règles d’association Les règles d ’association 1 - Parcours de la base pour rechercher les 1-fréquents 2 - Tri des fréquents dans l ’ordre décroissant 3 - Construction de l ’arbre null I2:7 I1:4 I5:1 I3:2 I4:1 I1:2
Recherche de règles d’association Les règles d ’association null I2:7 I1:4 I5:1 I3:2 I4:1 I1:2 I2 I1 I3 I4 I5 7 6 2
Recherche de règles d’association Les règles d ’association On commence par ceux dont le support est le plus faible Pour I5 chemins 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 I4 Avec I4 comme suffixe <I2 I1 : 1> et <I2 : 1> => fréquent I2 I4 : 2 Pour I3 Avec I3 comme suffixe <I2 I1 : 2>, <I2 : 2>, <I1 : 1> => fréquents : I2 I3 : 4 I1 I3 : 2 I2 I1 I3 : 2 ... null I2:7 I1:4 I5:1 I3:2 I4:1 I1:2 Support minimal = 1
Recherche de règles d’association Les 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 distincts té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 taxonomie Les motifs séquentiels A Puis B Puis C
Recherche de règles d’association Les règles d ’association Approches très efficaces maintenant Attention : les règles d'association sont faciles à comprendre mais attention leur utilité est moins évidente 3 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 quiconque ex : les client des épiceries achètent en même temps du pain et du beurre Les résultats inexplicables qui sont difficiles à situer et donc à expliquer ex : lors de l'ouverture d'une quincaillerie, parmi les articles les plus vendus on trouve les abattants de toilette
Recherche de règles d’association Les règles d ’association DBMiner (www.dbminer.com)
Recherche de règles d’association Les règles d ’association DBMiner (www.dbminer.com)
Recherche de règles d’association Les règles d ’association Intelligent Miner (www.ibm.com)
Organisation du cours Les règles d’association Les motifs séquentiels Web Usage Mining Text Mining Conclusion
Recherche de motifs séquentiels Les motifs séquentiels Même problématique mais avec le temps Item : « un article » Transaction : un client + un itemset + une estampille temporelle Séquence : liste ordonnée d’itemsets Sé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
Recherche de motifs séquentiels Les 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
Recherche de motifs séquentiels Les motifs séquentiels Support = 60% (3 clients) => <(10 30) (20) (20 60)>
Recherche de motifs séquentiels Les motifs séquentiels Génération des candidats pour les motifs séquentiels <(1 2) (3 4)> <(1 2) (3) (5)> <(1 2) (3)> < (2) (3 4)> <(1 2) (3)> < (2) (3) (5)>
Recherche de motifs séquentiels Les motifs séquentiels Nécessité d ’une structure efficace : structure de hachage Root 40 30 <(30 40 50)> <(30) (40 60)> <(40 50) (30)> <(40 50) (40)> 10 30 40 <(10) (10 40)> <(10 40) (20)> <(10) (30) (40)> <(10) (30 40)> S = <(10) (30) (10 40)>
Recherche de motifs séquentiels Les motifs séquentiels Vers une structure plus efficace : Structure prefix tree (PSP) : Exploitation des préfixes communs que présentent les candidats root 10 20 30 40 <(30 50 40 10) (30) (20 10)> <(10) (30) (20)> <(10) (30 40)> <(10) (40 10)>
Recherche de motifs séquentiels Les motifs séquentiels Génération des candidats de taille 2 Root 10 20 30 40 Root 10 20 30 40 ... 10 20 20 30 30 40 40 20 10 10
Recherche de motifs séquentiels Les motifs séquentiels Génération des candidats de taille > 2 Root Root 10 20 30 40 10 20 30 40 40 20 40 10 20 40 30 40 10 40 20 40 10 10 30
Recherche de motifs séquentiels Les 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és windowSize : regrouper des événements minGap : considérer des événements comme trop proches maxGap : considérer des événements comme trop éloignés
Recherche de motifs séquentiels Les 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 5 Donc C n’est pas inclus dans d
Recherche de motifs séquentiels Les motifs séquentiels Support = 50% : <(Ringworld) (Ringworld Engineers)> et <(Foundation) (Ringworld Engineers)> windowSize=7 jours : <(Foundation, Ringworld) (Ringworld Engineers)>
Recherche de motifs séquentiels Les motifs séquentiels Un autre exemple <(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)> <(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=1 windowSize=5
Recherche de motifs séquentiels Les motifs séquentiels Recherche de motifs séquentiels Date 1 7 13 17 18 24 C 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équentiels Les motifs séquentiels Recherche de motifs séquentiels Date 1 7 13 17 18 24 C 2 3 4 5 6 1 2 3 4 5 6 minGap 4 5 3 4 3 4 5
Recherche de motifs séquentiels Les motifs séquentiels Recherche de motifs séquentiels Date 1 7 13 17 18 24 C 2 3 4 5 6 1 2 3 4 5 6 minGap 4 5 3 4 3 4 5 Un chemin = une séquence Tous les chemins mais quid des inclusions ?
Recherche de motifs séquentiels Les motifs séquentiels Recherche de motifs séquentiels 1 2 3 4 5 6 minGap 4 5 3 4 3 4 5
Recherche de motifs séquentiels Les motifs séquentiels Recherche de motifs séquentiels 5 1 3 4 6 2 4 5 3 4 3 4 5 Regrouper ensemble les nœuds de même origine
Recherche de motifs séquentiels Les motifs séquentiels Recherche de motifs séquentiels 1 3 6 2 4 5 3 4 5 Supprimer les nœuds inclus ayant même destination
Recherche de motifs séquentiels Les motifs séquentiels Recherche de motifs séquentiels 1 3 6 2 4 5 3 4 5 <(1) (2) (3) (4 5) (6)> et <(1) (2) (3 4 5) (6)>
Recherche de motifs séquentiels Les motifs séquentiels Recherche de motifs séquentiels S Arbre des candidats DB AVANT S {S1, S2, .. Sn} GTC Arbre des candidats DB APRES
Organisation du cours Les règles d’association Les motifs séquentiels Web Usage Mining Text Mining Conclusion
Web Usage Mining Analyse de l’usage des visiteurs sur un site Web Applications 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
Web Usage Mining Pourquoi analyse l’usage des sites Web ? Applications 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 site Aider le concepteur à positionner l’information importante que les visiteurs recherchent. Précharger et cacher les pages Fournir des sites adaptatifs (personnalisation) Eviter le « zapping » Utile dans le cas du e-commerce
Exemple d’utilisation Web Usage Mining Applications Exemple d’utilisation
Web Usage Mining Un exemple d’outil : Analog (Web Log File Analyser) Applications Un exemple d’outil : Analog (Web Log File Analyser) www.analog.cx Statistiques générales : Nombre de hits Quelle 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 ?
Modification dynamique Web Usage Mining Applications 30%Promo « 75% des parisiens qui achètent une raquette de tennis achètent trois mois après des chaussures » Modification dynamique
Web Usage Mining Applications
Web Usage Mining Applications
Web Usage Mining Sources de données Utilisation de fichiers logs Applications 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, ….
Web Usage Mining Applications
Web Usage Mining Préparation des données Applications Préparation des données Vérification du suffixe (gif, jpeg, …) Elimination des robots (agents des moteurs) Identification de l’utilisateur Tout 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 …
Web Usage Mining Identification Applications Identification Comment 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 proxys Les 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)
Web Usage Mining Sessions Applications Sessions Comment identifier/définir une transaction d’un visiteur ? « Time Oriented » Durée totale d’une session : pas plus de 30 minutes Par temps passé sur une page : pas plus de 10 minutes/page « Navigation Oriented » Le « referrer » est la page précédente, ou Le « referrer » n’est pas défini mais demandé dans les 10 secondes, ou Le lien de la page précédente à la page courage dans le site web
Règles d’Associations Web Usage Mining Applications Architecture type Mécanisme de requêtes Fichiers Access Log Règles d’Associations Motifs séquentiels Classification Pré-traitement Fouille de Données Données Extérieures Nouvelles Données Repository
Web Usage Mining Limite de l ’approche : Applications 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
Opérateurs de voisinage Web Usage Mining Applications Séquence fréquente Opérateurs de voisinage Population de candidats DB Candidats évalués + Séquences fréquentes Nouvelle population de Séquences fréquentes
Opérateurs de voisinage M2 Web Usage Mining Applications M1 Séquence fréquente Opérateurs de voisinage M2 Population de candidats Candidats évalués Mn + Séquences fréquentes Nouvelle population de Séquences fréquentes
Web Usage Mining Opérateurs de voisinage Ajout d ’item Applications 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équence mélange entre ajout d ’item et nouvel item fréquent
Web Usage Mining Disponibilité immédiate Applications Disponibilité immédiate en 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és Puissance de calcul inépuisable Data Mining intéractif Extraction de fréquents de grande taille
Web Content Mining Idée principale : Applications Idée principale : Rechercher de sous-structures communes dans des bases de données d’objets complexes Applications : Indication pour interroger/naviguer dans les sources d’information Information générale sur le contenu aide à la construction d’index ou de vues découverte de motifs d’intérêt ou d’accès (Web Usage Mining) aide à la rétro-conception
Web Content Mining Considérer un « graphe » comme une séquence Applications Considérer un « graphe » comme une séquence address identity zipcode street id Person t1 B:Modify(order) C:Modify(amount) E:Modify(client.credit) F:Modify(client.trusted) G:Modify(order.status) H:Modify(client.trusted) <A,B,<E,<G,H>,F,C> Person:{identity:{id,address:<street,zipcode>}} (LA1) (LB1) (LE2) (LG3) (LH3) (LF2) (LC1) (Sidentity1) (Sid2 Saddress2) (Lstreet3) (Lzipcode3)
Organisation du cours Les règles d’association Les motifs séquentiels Web Usage Mining Text Mining Conclusion
Text Mining Qu'est ce que le Text Mining Applications Qu'est ce que le Text Mining L'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ésentes Bases de données de bibliothèques, bases de données de documents, mails, WWW, … Les données textuelles sont structurées ou semi-structurées La quantité de données textuelles augmente très rapidement Le 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)
Text Mining Un mot sur : Information Retrieval Applications Un mot sur : Information Retrieval IR : un domaine développé en parallèle des bases de données L'information est organisée dans (un grand nombres de) document IR : 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 utile L'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
Text Mining Classification automatique Applications 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)
Text Mining Analyse d'association basée sur des mots clés Applications Analyse d'association basée sur des mots clés Rechercher des associations/corrélations parmi des mots clés ou des phrases Mise 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èmes Les mots inutiles (ordinateur ? Utile ?) Les associations de mots, phrase, paragraphe, ...
Text Mining Analyse de tendances Applications Analyse de tendances Rechercher des tendances dans de nombreux documents Mise 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 phrases Recherche les phrases qui correspondent à des tendances
Text Mining minGap maxGap (m1) (m2) (mn) WindowSize Principes Applications 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 phrase Une phrase = une phrase Une phrase = un ensemble de mots proches Une phrase = un paragraphe minGap maxGap (m1) (m2) (mn) WindowSize
Text Mining Gérer l'historique des phrases Applications Gérer l'historique des phrases Partitionner les documents en fonction de leur estampille ex : année pour les brevets, mois pour des documents sur le Web Pour 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, ….)
Un exemple de tendances Text Mining Applications Brevets classés dans la catégorie « Induced Nuclear Reactions: Processes, Systems and Elements » 0,5 1 1,5 2 2,5 3 3,5 4 4,5 1990 1991 1992 1993 1994 Période Support (%) <(removal) (system) <(heat) (removal)> <(zirconium) (based) (alloy)> <(emergency) (cooling)> <(feed) (water)> <(fuel) (cladding)> Un exemple de tendances
Conclusion Elle travaille sur des données de taille variable 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 variable Les calculs qu’elle utilise sont simples à comprendre Les points faibles : Le volume des calculs augmente exponentiellement en fonction de la taille du problème Difficulté 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 Conclusion www.lgi2p.ema.fr/~poncelet
Conclusion Conclusion
Conclusion Conclusion
Conclusion Une URL KDD Mine http://www.kdnuggets.com Quelques outils Intelligent 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
Recherche de règles d’association Les 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