Règles d'association et motifs séquentiels - Site Sécurisé du LIRMM
Règles d'association et motifs séquentiels - Site Sécurisé du LIRMM
Règles d'association et motifs séquentiels - Site Sécurisé du LIRMM
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
history. Having a great success with this program, he is requested to lecture e.g. at WPPC(World Piano Pedagogic Conference), OMTA (Ohio Music Teachers Association), Albuquerque,Val Tidone and others.When Steinway celebrated the 150-year-jubilee, Delorko created a program “The Steinwayhistory” for concert and CD recording presenting 25 period instruments.Another very successfull program is “Jazz me<strong>et</strong>s Classic”, here working tog<strong>et</strong>her with germanjazz pianist Christoph Spendel. A “Jazz me<strong>et</strong>s Classic” CD is also available.Besides the already mentioned CD pro<strong>du</strong>ction, Ratko Delorko made a multiplicity of bringing infor different labels. He played among others, the piano concerts WoO 4 and No. 2 on periodinstruments (the remaining Be<strong>et</strong>hoven piano concerts are being prepared), pro<strong>du</strong>ced a CD withthe entire oeuvre of Gershwin (Rhapsody in Blue, Preludes <strong>et</strong>c.) and released a live recordingof the Chopin-Recital from the Berliner Philharmonie.Ratko Delorko is teaching and lecturing at the Musikhochschule of Frankfurt.
Pourquoi fouiller les données ?o Les données sont collectées <strong>et</strong> stockéesrapidement (GB/heures)n Capteurs : RFID, supervision de procédén Télescopesn Puces à ADN générant des expressions de gènesn Simulations générant de téraoct<strong>et</strong>s de donnéeso Les techniques traditionnelles ne sont pasadaptéesContexte général4
Un enjeu stratégiqueDéterminerles moyenspour fidéliserles clientsIdentifierles nouveauxmarchésAnticiper leschangements decomportementMinimiser lesrisquesIdentifier lesnouveauxpro<strong>du</strong>its ouservicesContexte général5
Qu’est ce que le Data Mining ?o De nombreuses définitionsn Processus non trivial d’extraction de connaissancesd’une base de données pour obtenir de nouvellesdonnées, valides, potentiellement utiles,compréhensibles, .…n Exploration <strong>et</strong> analyse, par des moyens automatiquesou semi-automatiques, de large quantité de données envue d’extraire des <strong>motifs</strong> intéressantsContexte général6
Données, Informations, ConnaissancesDécision• Promouvoir le pro<strong>du</strong>it P dans la région R <strong>du</strong>rant la période N• Réaliser un mailing sur le pro<strong>du</strong>it P aux familles de profil FConnaissance (data mining)• Une quantité Q <strong>du</strong> pro<strong>du</strong>it P est ven<strong>du</strong>e en région R• Les familles de profil F utilisent M% de P <strong>du</strong>rant la période NInformation (requêtes)• X habite la région R• Y a A ans• Z dépense son argent dans la ville V de la région RDonnées• Consommateurs• Magasins• Ventes• Démographie• GéographieContexte général8
Data Mining ou non ? NONRechercher lesalaire d’unemployé OUILes supporters achètent de labière le samedi <strong>et</strong> de l’aspirinele dimancheContexte généralInterroger unmoteur derecherche Webpour avoir desinformations sur leData MiningRegrouper ensemble desdocuments r<strong>et</strong>ournés par unmoteur de recherche enfonction de leur contenu9
Cycle de vie <strong>du</strong> KDD« Questionsstratégiques »Identification<strong>du</strong> problèmeDataWarehouseSGBDContexte généralEvaluerRapports,graphique,ExecutiveInformationSystems (EIS)Agir sur l’informationTransformation desdonnées eninformation/connaissancesProcessusde KDD10
ApplicationsoooooContexte généralMédecine : bio-médecine, drogue, Sida, séquencegénétique, gestion hôpitaux, ...Finance, assurance : crédit, prédiction <strong>du</strong> marché,détection de fraudes, …Social : données démographiques, votes, résultats desélections,Mark<strong>et</strong>ing <strong>et</strong> ventes : comportement des utilisateurs,prédiction des ventes, espionnage in<strong>du</strong>striel, …Militaire : fusion de données .. (secr<strong>et</strong> défense)o Astrophysique : astronomie, « contact » ( ;-))o Informatique : agents, règles actives, IHM, réseau, Data-Warehouse, Data Mart, Intern<strong>et</strong> (moteurs intelligent,profiling, text mining, …)11
Recherche de <strong>motifs</strong> fréquentso Qu’est ce qu’un motif fréquent ?n Un motif (ensemble d’items, séquences, arbres, …)qui interviennent fréquemment ensemble dans unebase de données [AIS93]o Les <strong>motifs</strong> fréquents : une forme importante derégularitén Quels pro<strong>du</strong>its sont souvent ach<strong>et</strong>és ensemble ?n Quelles sont les conséquences d’un ouragan ?n Quel est le prochain achat après un PC?12
Recherche de <strong>motifs</strong> fréquentso Analyse des associationsn Panier de la ménagère, cross mark<strong>et</strong>ing, conception decatalogue, analyse de textesn Corrélation ou analyse de causalitéo Clustering <strong>et</strong> Classificationn Classification basée sur les associationso Analyse de séquencesn Web Mining, détection de tendances, analyses ADNn Périodicité partielle, associations temporelles/cycliques13
« Panier de la ménagère »o Recherche d’associationsn recherche de corrélations entre attributs (items)n caractéristiques : « panier de la ménagère »n de très grandes donnéesn limitations : données binaireso Recherche de <strong>motifs</strong> séquentielsn recherche de corrélations entre attributs (items) maisen prenant en compte le temps entre items =>comportementContexte général14
Plano Contexte généralo Règles d’associationo Motifs séquentielso Applications : Web Mining, Text Miningo Conclusions15
Recherche de règles d’association16
Panier de la ménagèreLocalisationPro<strong>du</strong>its ach<strong>et</strong>ésIdentificationDate, heureLes règles d ’association17
Panier de la ménagèreLocalisationPremier paragraphe« Livre d’architecture contenant les principes généraux … »IdentificationPosition # Date Mots # Pro<strong>du</strong>its18
Recherche de règles d’associationo Règles de la formeANTECEDENT → CONSEQUENT [Support, Confiance](support <strong>et</strong> confiance sont des mesures d’intérêt définies par l’utilisateur)n Achat (x, « Beurre ») ET Achat (x, « Pain ») → Achat(x, «Lait ») [70%, 80%]n Achat (x, « Bière ») ET Achat (x, « Gâteaux ») → Achat (x, «Couches ») [30%, 80%]n Achat (x, « Caviar ») → Achat(x, « Champagne ») [10%,90%]Les règles d ’association19
La légendeLes règles d ’association20
InterprétationoR : X →Y (A%, B%)n Support : portée de la règleProportion de paniers contenant tous les attributsA% des clients ont ach<strong>et</strong>é les 2 articles X <strong>et</strong> Yn Confiance :Proportion de paniers contenant le conséquent parmi ceuxqui contiennent l’antécédentB% des clients qui ont ach<strong>et</strong>é X ont aussi ach<strong>et</strong>é Yn Beurre, Pain → Lait [70%, 80%]n Bière, Gâteaux → Couches [30%, 80%]n Caviar → Champagne [10%, 90%]Les règles d ’association21
Utilisation des règles d’associationBière, … →CouchesLes règles d ’associationn Couches comme conséquentdéterminer ce qu’il faut faire pour augmenter les ventesn Bière comme antécédentquel pro<strong>du</strong>it serait affecté si on n’arrête de vendre de labièren Bière comme antécédent <strong>et</strong> Couche commeconséquentquels pro<strong>du</strong>its devraient être ven<strong>du</strong>s avec la Bière pourpromouvoir la vente de couches22
Définitions des ensembles fréquentsn Soit un ensemble I = {I1, I2, ..., Im} d’items, un<strong>et</strong>ransaction T est définie comme les sous-ensemblesd’items dans I (⊆ I).o I = {Bière, Café, Couche, Gâteaux,Moutarde,Saucisse...}o T1 = {Café, Moutarde, Saucisse}n Une transaction n’a pas de <strong>du</strong>plicatsn Soit une base de données D un ensemble de ntransactions <strong>et</strong> chaque transaction est nommée parun identifiant (TID).o D = {{T1, {Café,Moutarde,Saucisse}},Les règles d ’association{T2, {Bière, Café, Gâteaux}}, ...}23
Une base de donnéeso Une représentation de la base de données DClient Pizza Lait Sucre Pommes Café1 1 0 0 0 02 0 1 1 0 03 1 0 0 1 14 0 1 0 0 15 1 0 1 1 1o En fait ….M=⎡⎡1⎢⎢⎢⎢0⎢⎢1⎢⎢⎢⎢0⎢⎢⎣⎣10101001001001010⎤⎤0⎥⎥⎥⎥1⎥⎥⎥⎥1⎥⎥1⎥⎥⎦⎦24Les règles d ’association
Définition des ensembles fréquents (cont.)n Une transaction T supporte un ensemble X ⊆ I sielle contient tous les items de X (X ⊆ T).o T1 supporte {Café, Moutarde,Saucisse}n Support de X (Supp(X)) : fraction de toutes lestransactions dans D qui supportent X.n Si supp(X) ≥ s min l’ensemble X est dit fréquent. n Un ensemble d’items (items<strong>et</strong>) X de cardinaliték = |X| est appelé un k-items<strong>et</strong>.3-items<strong>et</strong> : {Café, Moutarde, Saucisse}!Les règles d ’association25
Propriétés des ensembles fréquentsn Propriété 1 : support pour les sous-ensembleso Si A ⊆ B pour les items<strong>et</strong>s A, B alors supp(A) >= supp(B) car toutes les transactions dans D qui supportent Bsupportent aussi nécessairement A.A={Café, Moutarde}, B ={Café, Moutarde, Saucisse}n Propriété 2 : les sous-ensembles d’ensemblesfréquents sont fréquentsn Propriété 3 : les sur-ensembles d’ensembles nonfréquents sont non fréquents (anti-monotonie)Les règles d ’association26
Définition des Règles d’associationn Une règle d’association est une implication de laformeR : X → Yoù X <strong>et</strong> Y sont des items<strong>et</strong>s disjoints :X, Y ⊆ I <strong>et</strong> X ∩ Y = ∅.Bière, Gâteaux → Couches27Les règles d ’association
Définition des Règles d’association (cont.)n Confiance (confidence) dans une règle Rn Si une transaction supporte X, elle supporte aussi Yavec une certaine probabilité appelée confiance dela 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) !!!Les règles d ’associationSupp(Bière,Gâteaux,Couches)conf(R) = --------------------------- ≥ confiance ?Supp (Bière, Gâteaux)28
Propriétés des règles d’associationo Propriété 4 : pas de composition des règlesn Si X → Z <strong>et</strong> Y → Z sont vrais dans D, X U Y → Zn’est pas nécessairement vrai.nConsidérons le cas où X ∩ Y = Ø <strong>et</strong> les transactions dans D supportent Zsi <strong>et</strong> seulement si elles supportent X ou Y, alors l ’ensemble X U Y a unsupport de 0 <strong>et</strong> donc X U Y → Z a une confiance de O%.o Propriété 5 : décomposition des règlesn Si X U Y → Z convient, X → Z <strong>et</strong> Y → Z peut neT(Z)pas être vrai.T(Y)Les règles d ’associationT(X)29
Propriétés des règles d’associationo Propriété 6 : pas de transitivitén Si X → Y <strong>et</strong> Y → Z , nous ne pouvons pas endé<strong>du</strong>ire que X → Z.o Propriété 7 : dé<strong>du</strong>ire si une règle convientn Si A → (L-A) ne vérifie pas la confiance alors nousn’avons pas B → (L-B) pour les items<strong>et</strong>s L, A, B <strong>et</strong>B ⊆ A.Les règles d ’association30
En résuméooooItems<strong>et</strong>s : A, B ou B, E, FSupport pour un items<strong>et</strong>Supp (A,D)=1Supp (A,C) = 2Items<strong>et</strong>s fréquents (minSupp=50%){A,C} est un items<strong>et</strong> fréquentPour minSupp = 50% <strong>et</strong> minConf= 50%, nous avons les règlessuivantes :A → C [50%, 50%]C → A [50%, 100%]Trans.IDItems1 A, D2 A, C3 A, B, C4 A, B, E, F31Les règles d ’association
Schéma algorithmique de baseo La plupart des approches utilise le même schémaalgorithmiqueo Pour construire les règles d ’association, lesupport de tous les items<strong>et</strong>s fréquents dans labase doit être calculéo L ’algorithme procède en deux phases :n 1) Génération de tous les ensembles fréquentsn 2) Génération des règles d ’associationLes règles d ’association32
Comptage des items<strong>et</strong>so Une première approcheo I = {A, B,C}o Génération de tous les cas possibles :{∅},{A}, {B}, {C},{A,B}, {A,C}, {B,C}{A,B,C}o Comptage <strong>du</strong> support33Les règles d ’association
Génération des ensembles fréquentso Le nombre d ’ensemble fréquent potentiel estégal à la taille <strong>du</strong> pro<strong>du</strong>it cartésien de tous lesitems …. qui croit exponentiellement enfonction <strong>du</strong> nombre d ’items considérés.o Approche naïve : recherche exhaustive <strong>et</strong> test d<strong>et</strong>ous les ensemble <strong>du</strong> pro<strong>du</strong>it cartésien poursavoir s ’ils sont fréquentso 1000 items => 2 1000 ensembles à considérerLes règles d ’association34
Vers un algorithme génériqueN = 1SCANN=N+1GENERATIONN-FréquentsN-CandidatsSCANN-fréquentsLes règles d ’association35
Construction des règlesn Pour chaque ensemble fréquent X, chaque sousensembleest choisi comme antécédent de la règle, lereste devenant la partie conséquent.n Comme X est fréquent, tous les sous-ensembles sontfréquents (Propriété 3) donc leur support est connu.La confiance d’une règle est calculée <strong>et</strong> une règle estconservée ou pas selon la confiance minimale.n Amélioration : (Propriété 7) quand une règle échoue,aucun sous ensembles de l ’antécédent n ’est àconsidérer.Les règles d ’association36
Bref historiqueo Problématique initiée en 1993o CPU vs. I/Oo 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 ….2006, 2007 Les règles d ’association37
L’algorithme APRIORIo But : minimiser les candidatso Principe : générer seulement les candidats pourlesquels tous les sous-ensembles ont étédéterminés fréquentso Génération des candidats réalisée avant <strong>et</strong> demanière séparée de l'étape de comptage38Les règles d ’association
L’algorithme APRIORIInput : C k : items<strong>et</strong>s candidats de taille kOutput : L k : items<strong>et</strong>s fréquents de taille kL 1 = {items fréquents};for (k = 1; L k !=∅; k++) doC k+1 = candidats générés à partir de L k ;Pour chaque transaction t de la base de données, incrémenter lecompteur de tous les candidats dans C k+1 qui sont contenusdans tL k+1 = candidats dans C k+1 avec minSuppr<strong>et</strong>urn ∪ k L k ;Les règles d ’association39
Détails d’APRIORIo Comment générer les candidats ?n Etape 1: auto-jointure sur L kn Etape 2: élagageo Comment compter le support des candidats ?40Les règles d ’association
Génération des candidatsoLes items de L k-1 sont ordonnés par ordrelexicographiqueo Etape 1: auto-jointure sur L k-1INSERT INTO C kSELECT p.item 1 , p.item 2 , …, p.item k-1 , q.item k-1FROM L k-1 p, L k-1 qWHERE p.item 1 =q.item 1 , …, p.item k-2 =q.item k-2 , p.item k-1
Génération des candidats : exempleo L 3 ={abc, abd, acd, ace, bcd}o Auto-jointure : L 3 *L 3n abcd à partir de abc <strong>et</strong> abdn acde à partir de acd <strong>et</strong> aceo Élagage :n acde est supprimé car ade n’est pas dans L 3o C 4 ={abcd}42Les règles d ’association
Stockage des candidatso un arbre (structure de hash-tree)structure de tous les 3-candidats possibles pour 5 items (A, B, C,D, E)ABCB{C}{D}{E}C{D}{E}D{E}{C,D}{C,E}{D,E}Ensemble {A,C,D}{D,E}43Les règles d ’association
Comptage <strong>du</strong> support des candidatso Parcourir la base. Pour chaque tuple extrait t,compter tous les candidats inclus dedansn Rechercher toutes les feuilles qui peuvent contenirles candidatsn Hachage sur chaque item <strong>du</strong> tuple <strong>et</strong> descente dansl ’arbre des candidatso Dans les feuilles de l’arbre vérifier ceuxeffectivement supportés par to Incrémenter leur support44Les règles d ’association
IllustrationLes règles d ’associationCID1 A BItems2 A B C D E F3 B D G4 B E G5 D F G6 DEG7 B E8 B D E FSupport minimal = 145
IllustrationC1SupportA 2B 6C 1D 5E 5F 3G 4L1 = {{A},{B},{C},{D},{E},{F},{G}} 1-items<strong>et</strong>s fréquentsLes règles d ’association46
IllustrationC2 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 22-items<strong>et</strong>s fréquents{{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}}Les règles d ’association47
IllustrationC3 Support C3 SupportABC 1 BDE 2ABD 1 BDF 2ABE 1 BDG 1ABF 1 BEF 2ACD 1 BEG 1ACE 1 BFG 0… … … …BCF 1 EFG 0L3 = {{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 à L2Les règles d ’association48
IllustrationC4 Support C4 SupportABCD 1 ACEF 1ABCE 1 ADEF 1ABCF 1 BCDE 1ABDE 1 BCDF 1ABDF 1 BCEF 1ABEF 1 BDEF 2ACDE 1 BDEG 0ACDF 1 CDEF 0L4 = {{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 à L3Les règles d ’association49
IllustrationC6ABCDEFSupport16-items<strong>et</strong>s fréquents L6 = {{A,B,C,D,E,F}}C7 = {∅} => l ’algorithme se termine.7 balayages pour déterminer tous les items<strong>et</strong>s fréquentsLes règles d ’association50
Espace de rechercheABCDNIV 4ABC ABD ACD BCDNIV 3AB AC BC AD BD CDNIV 2A B C DNIV 1{}Algorithme par niveauLes règles d ’association51
Partitiono But : Ré<strong>du</strong>ire le nombre de passeso Principe :n partitionner la base de manière à ce que chaquepartition tienne en mémoire centrale (utilisationd ’Apriori pour chaque partition)n 2 passes sur la base52Les règles d ’association
Partition (cont.)o Phase 1 : Division de la basen Traiter les partitions une par une : les items<strong>et</strong>sfréquents sont fusionnés pour générer l ’ensemblede tous les items<strong>et</strong>s fréquents potentielso Phase 2 : le support de ces items<strong>et</strong>s est calculéLes règles d ’association53
DIC (Dynamic Items<strong>et</strong> Counting)o But : ré<strong>du</strong>ction <strong>du</strong> nombre de balayage de labaseo Lecture par blocs de M transactionso Essayer de générer le plus vite possible, i.e. àla fin de M, des (k+1)-items<strong>et</strong>s pour lesrechercher dans les prochaines M transactions54Les règles d ’association
DIC (Cont.)2-items<strong>et</strong>s 3-items<strong>et</strong>s 4-items<strong>et</strong>stransactions1-items<strong>et</strong>s 2-items<strong>et</strong>s 3-items<strong>et</strong>s4-items<strong>et</strong>sLes règles d ’association55
Samplingo Idée : prendre un ensemble aléatoire quiréside en mémoire centrale <strong>et</strong> rechercher tousles items<strong>et</strong>s fréquentso Très efficace : 1 passe, 2 passes au pireo Basée sur la bor<strong>du</strong>re négativeLes règles d ’association56
Bor<strong>du</strong>re négativeABCDABC ABD ACD BCDAB AC BC AD BD CDA B C D{}Les règles d ’association57
Bor<strong>du</strong>re négativeminSupp = 2FréquentsABD (2)Bor<strong>du</strong>re négativeAB(2) AC(2) BC(1) AD(2) BD(2) CD(1)A(3) B(3) C(3) D(3){}Les règles d ’association58
Sampling (cont.)o Algorithmesupport minimum, p<strong>et</strong>it support minimum, une base <strong>et</strong>un échantillon de la base1 - prendre un échantillon de la base2 - Calculer les fréquents avec p<strong>et</strong>it support minimumen mémoire centrale : Fréquents <strong>et</strong> Bor<strong>du</strong>re3 - Evaluer la fréquence des items<strong>et</strong>s fréquents <strong>et</strong> de labor<strong>du</strong>re négative sur le reste de la base4 - R<strong>et</strong>ourner le résultat <strong>et</strong> les éventuels manques59Les règles d ’association
Sampling (cont.)o D = 10 millions de tuples - A ... F - support minimum = 2% -Echantillon s de 20 000 tuples p<strong>et</strong>it support minimum = 1,5%Pour l’échantillon avec 1,5% :{B,D}}Bor<strong>du</strong>re négative = BN={{B,F},{C,D},{D,F},{E}}o Evaluer F <strong>et</strong> BD sur le reste de la base avec 2%1 - on trouve {A,B},{A,C,F} en une passeF={{A,B,C},{A,C,F},{A,D},2 - si {B,F} devient fréquent sur D => manque peut être{A,B,F} => reporter l ’erreur <strong>et</strong> effectuer une seconde passeLes règles d ’association60
MaxMiner : Mining Max-patternso But : rechercher les longs items<strong>et</strong>s fréquentso Max-patterns : bor<strong>du</strong>res de <strong>motifs</strong> fréquentsn Un sous-ensemble d’un max-pattern est fréquentn Un sur-ensemble d’un max-pattern est non fréquento Parcours en largeur <strong>et</strong> en profondeurLes règles d ’association61
MaxMiner : Mining Max-patterns (cont.)ooo1er passage: rechercher les items fréquentsn A, B, C, D, E2nd passage: rechercher les support pourn AB, AC, AD, AE, ABCDEn BC, BD, BE, BCDEn CD, CE, CDE, DE,Comme BCDE est un max-pattern, il n’est pasnécessaire de vérifier BCD, BDE, CDE dans lesparcours suivantsLes règles d ’associationTidItems10 A,B,C,D,E20 B,C,D,E,30 A,C,D,FminSupp=262
Génération des candidatso Depuis 2000 « La base peut tenir en mémoire »o Constat : génération d ’un trop grand nombre decandidatso s ’il y a 10 4 1-items<strong>et</strong> => génération de 10 7 candidats 2-items<strong>et</strong>so Pour un fréquent de 100, il faut générer plus de 10 30candidats au totaln Est-il possible de proposer une méthode qui évite degénérer des candidats ?Les règles d ’association63
FP-Tree1 - Parcours de la base pour rechercher les 1-fréquents2 - Tri des fréquents dans l ’ordre décroissantTID Items Items triés1 I1, I2, I5 I2, I1, I52 I2, I4 I2, I43 I2, I3 I2, I34 I1, I2, I4 I2, I1, I45 I1, I3 I1, I36 I2, I3 I2, I37 I1, I3 I1, I38 I1, I2, I3, I5 I2, I1, I3, I59 I1, I2, I3 I2, I1, I3Les règles d ’associationL = [ I2:7,I1:6,I3: 6,I4 : 2,I5 : 2]64
FP-Tree (cont.)Parcourir les transactions de la baseCréation <strong>du</strong> FP-Tree :« faire glisser les transactions dans l’arbre »- Une branche existe : incrémenter le support- Créer la branche autrementnullI2:7nullI1:2(I2, I1, I5)I2:1I1:4I3:2I4:1I3:2I1:1I5:1I3:2I4:1I5:1Les règles d ’associationI5:165
FP-Tree (cont.)nullI27I2:7I1:2I1I366I1:4I3:2I4:1I3:2I42I4:1I52I5:1I3:2I5:1Association d’un tableaude pointeurs triéLes règles d ’association66
FP-Tree (cont.)nullOn commence par ceux dont le support est le plus faibleI2:7I1:2Pour I5chemins pour I5 <strong>et</strong> en considérant I5 comme suffixe on a :I1:4I3:2I4:1I4:1I3:2=> (support I3 = 1)Génération : I2 I5 : 2 I1 I5 : 2 I2 I1 I5 : 2Pour I4Avec I4 comme suffixe <strong>et</strong> => fréquent I2 I4 : 2I5:1 I3:2minSupp = 1Les règles d ’associationI5:1Pour I3Avec I3 comme suffixe, , => fréquents : I2 I3 : 4 I1 I3 : 2 I2 I1 I3 : 2...67
Bénéfices de FP-treeooPréserve l’information complète pour l’extractiond’items<strong>et</strong>so Pas de passage supplémentaire sur la baseApproche Compacten Les items sont triés dans un ordre décroissant de fréquence :plus ils apparaissent fréquemment plus ils seront partagésn Ne peut jamais être plus grand que la base d’origine (sanscompter les liens, les nœuds <strong>et</strong> les compteurs)Les règles d ’association68
Cas des données corréléesooD’autres types d’algorithmesn Utilisation <strong>du</strong> treillis <strong>et</strong> de ses propriétés⎢⎢⎣⎣10 1 1 1⎥⎥⎦⎦n Recherche des items<strong>et</strong>s fermés fréquents (les items<strong>et</strong>smaximaux pour lesquels il n’existe pas de super ensembleavec la même valeur de support)n Recherche des générateursn Recherche de représentation condensée (clos, libres,dérivables)Close, Close+, Charm …Les règles d ’associationM=⎡⎡1⎢⎢⎢⎢0⎢⎢1⎢⎢⎢⎢01111011111111⎤⎤1⎥⎥⎥⎥1⎥⎥⎥⎥1⎥⎥69
Quelques conclusionsoDe nombreux travauxn De nouvelles approches condenséesn De nouvelles contraintes (ré<strong>du</strong>ire l’espace de recherche)n Préservation de la vie privéen Approches Incrémentalesn Règles plus généralesn Définir de nouvelles mesures (lift, implication, …)Les règles d ’association70
Règles d’association incrémentaleso Générer les règles dans une base dynamiqueo Problème : les algorithmes considèrent desbases statiqueso Objectifs :n Chercher les items<strong>et</strong>s fréquents dans Dn Chercher les items<strong>et</strong>s fréquents dans D ∪ {Δ D}o Doit être fréquent dans D ou Δ Do Sauvegarder tous les fréquents, la bor<strong>du</strong>reo … Data Streams (Flots de Données)Les règles d ’association71
Des règles plus généraleso Les règles négativesExpr(Ci) → Expr(Cj) avec AND, OR, NOTo Les règles sur plusieurs dimensionso Les règles à attributs variablesAge ∈[x,y] => Salaire > 45 K€ (5%; 30%)o Les règles approximativeso Les règles avec généralisationAssociée à une taxonomie72Les règles d ’association
Utilité des règleso La règle utile contenant des informations dequalité qui peuvent être mises en pratiqueex : le samedi, les clients des épiceries achètent en mêm<strong>et</strong>emps de la bière <strong>et</strong> des coucheso Résultats connus par quiconqueex : les client des épiceries achètent en même temps <strong>du</strong> pain<strong>et</strong> <strong>du</strong> beurreo Résultats inexplicables difficiles à situer <strong>et</strong> doncà expliquerLes règles d ’associationex : lors de l'ouverture d'une quincaillerie, parmi les articlesles plus ven<strong>du</strong>s on trouve les abattants de toil<strong>et</strong>te73
D’autres mesuresArticles A B C A, B A, C B, C A, B, CFréquences (%) 45 42,5 40 25 20 15 5ooSi on considère les règles à trois articles, elles ont le mêmesupport 5%. Le niveau de confiance est alors :RègleA, B → C 0,20A, C → B 0,25B,C → A 0,33ConfianceLa règle « B, C → A » possède la plus grande confiance. si B <strong>et</strong>C apparaissent simultanément dans un achat alors A y apparaîtaussi avec une probabilité estimée de 33%.Les règles d ’association74
D’autres mesures (cont.)Articles A B C A,BA, C B, C A, B, CFréquences (%) 45 42,5 40 25 20 15 5ooA apparaît dans 45% des achats. Il vaut donc mieuxprédire A sans autre information que de prédire Alorsque B <strong>et</strong> C apparaissent.l'amélioration perm<strong>et</strong> de comparer le résultat de laprédiction en utilisant la fréquence <strong>du</strong> résultatAmélioration = confiance / frequence(résultat)Les règles d ’association75
D’autres mesures (cont.)oUne règle est intéressante lorsque l'amélioration est supérieure à1. Pour les règles choisies, on trouve :Règle Confiance Freq(résultat) AméliorationA, B→ C 0.20 40% 0.50A,C → B 0.25 42.5% 0.59B,C → A 0.33 45% 0.74o Par contre, la règle si « A → B » possède un support de 25%,une confiance de 0.55 <strong>et</strong> une amélioration de 1.31, c<strong>et</strong>te règle estdonc la meilleure.o En règle générale, la meilleure règle est celle qui contient lemoins d'articles.Les règles d ’association76
VisualisationLes règles d ’associationDBMiner (www.dbminer.com)77
Les règles d ’associationDBMiner (www.dbminer.com)78
Les règles d ’associationIntelligent Miner (www.ibm.com)79
Plano Contexte généralo Règles d’associationo Motifs séquentielso Applications : Web Mining, Text Miningo Conclusions80
Pourquoi la recherche de séquence ?o Un important domaine de recherche pour le datamining avec de très nombreuses applicationsn Analyse des achats des clientsn Analyse de puces ADNn Processusn Conséquences de catastrophes naturellesn Web miningn Détection de tendances dans des données textuellesLes <strong>motifs</strong> séquentiels81
Recherche de Motifs Séquentielso Même problématique mais avec le tempso Item : « un article »o Transaction : un client + un items<strong>et</strong> + uneestampille temporelle T = [C, (a,b,c) 5 ]o Séquence : liste ordonnée d’items<strong>et</strong>so Séquence de données : « activité <strong>du</strong> client »Soit T 1 , T 2 , … T n , les transactions <strong>du</strong> client C, laséquence de données de C est :[C, ]Les <strong>motifs</strong> séquentiels82
Recherche de Motifs Séquentielso Support minimal : nombre minimumd’occurrences d’un motif séquentiel pour êtreconsidéré comme fréquento Attention l’occurrence n’est prise en comptequ’une fois dans la séquenceSupport (20) dans =1Les <strong>motifs</strong> séquentiels83
Inclusiono Inclusion : Soient S 1 = <strong>et</strong> S 2 = S 1 ⊆ S 2 ssii 1 < i 2 < … < i n / a 1 ⊆ b i1 , …. a n ⊆ b ino S1 = S2 = ⊆ S1S3 = n’est pas incluse dans S1Les <strong>motifs</strong> séquentiels84
Problématiqueo Soit D une base de données de transactions declients. Soit σ une valeur de support minimalRechercher toutes les séquences S telles que : support(S) ≥σ dans Do 50% des personnes qui achètent <strong>du</strong> vin <strong>et</strong> <strong>du</strong>fromage le lundi achètent aussi <strong>du</strong> pain levendrediLes <strong>motifs</strong> séquentiels85
IllustrationClients Date1 Date2 Date3 Date4C1 10 20 30 20 40 50 10 20 60 10 40C2 10 20 30 10 20 30 20 30 60C3 20 30 50 10 40 60 10 20 30C4 10 30 60 20 40 10 20 60 50Support = 60% (3 clients) => Les <strong>motifs</strong> séquentiels86
Items<strong>et</strong>s :Espace de rechercheABCDNIV 4ABC ABD ACD BCDNIV 3AB AC BC AD BD CDNIV 2A B C DNIV 1{}Algorithme par niveauLes <strong>motifs</strong> séquentiels87
Motifs Séquentiels : lespace de rechercheAAA A(AB) AAB A(AC) AAC (AB)B (ABC) (AB)C ABB …AA (AB) AB (AC) AC BB (BC) BC CCA B C{}Les <strong>motifs</strong> séquentiels88
La propriété dantimonotonieo Une propriété essentielle (c.f. Apriori [AIS93])n Si une séquence nest pas fréquente,aucune des super-séquences de S nestfréquente!Support () < minsuppSupport ()
Vers un algorithme génériqueN = 1SCANN=N+1GENERATIONN-FréquentsN-CandidatsSCANN-fréquentsLes <strong>motifs</strong> séquentiels90
Génération des candidatso S-Extension : ajout d’une séquenceo I-Extension : ajout d’un items<strong>et</strong>< (2) (3 4)>< (2) (3) (5)>I-ExtensionS-ExtensionLes <strong>motifs</strong> séquentiels91
GSPo A la APRIORI [Srikant, Agrawal, EDBT96]L=1While (Result L != NULL)Candidate GeneratePruneTestL=L+1Les <strong>motifs</strong> séquentiels92
Recherche des séquences de taille 1ooCandidats initiaux : toutes les séquencesré<strong>du</strong>ites à un itemn, , , , , , , Un passage sur la base pour compter lesupport des candidatsSeq. ID1020304050SéquenceminSupp =2Cand Sup 3 5 4 3 3 2 1 1Les <strong>motifs</strong> séquentiels93
Le Processus5th scan : 1 candidate1 length-5 seq pattern4th scan : 8 candidates6 length-4 seq pat …3rd scan : 46 candidates19 length-3 seq pat. …2 nd scan : 51 candidates19 length-2 seq pat.1st scan : 8 candidates6 length-1 seq pattern … … … 94
Génération des candidats de taille 2 51 2-CandidatsI-ExtensionLes <strong>motifs</strong> séquentielsS-Extension Sans la propriété d’antimonotonie8*8+8*7/2=92candidats95
Comptage des supports des candidatsBASE DE DONNEESUn tupleT={cid, }CandidatsStockés enMémoire centraleC1 C1 ⊆ T ?C2 C2 ⊆ T ?C3 C3 ⊆ T ?C4 C4 ⊆ T ?C5 C5 ⊆ T ?Cn Cn ⊆ T ?MEMOIRE CENTRALELes <strong>motifs</strong> séquentiels96
Stockage des candidats10Root30403040Les <strong>motifs</strong> séquentielsS = 97
PSP (Prefix Tree for Sequential Patterns)o Vers une structure plus efficace : prefix treeroot10 20 304030 40 20 40 1020 40 10 10 30 40Les <strong>motifs</strong> séquentiels98
PSP (cont.)o Génération des candidats de taille 2Root10 20 30 40Root10 20 30 4010 20 20 30 30 40 40 20 10 10 ...Les <strong>motifs</strong> séquentiels99
PSP (cont.)o Génération des candidats de taille > 210Root20 30 4010Root20 30 4030402040 1030 402040 10Candidats <strong>et</strong> fréquentsdans le même arbreLes <strong>motifs</strong> séquentiels20 40 10 10 30 40100
SPAMo Utilisation de bitmaps pour rechercher les <strong>motifs</strong>fréquentso Hypothèse : la base tient toujours en mémoireo On construit d’un arbre lexicographiquecontenant toutes les branches possibles –élimination des branches en fonction <strong>du</strong> supporto Nouvelle représentation des donnéesLes <strong>motifs</strong> séquentiels101
SPAM (cont.)oooReprésentation verticaledes donnéesC1 = S-ExtensionI-Extension(1)T1 0C1 T2 0T3 1T4 0T5 1Les <strong>motifs</strong> séquentiels102
SPAM (cont.)o S-Extension : un bitmap transformé + ANDo I-Extension : ANDo Exemple : recherche <strong>du</strong> candidat (1) (2)(1)1000→S-extension(1) S0111AND21110→(1)(2)0110Les <strong>motifs</strong> séquentiels103
Motifs généraliséso Pour certains domaines d’applications il estnécessaire de limiter les résultatscorrélations entre achat <strong>du</strong> caviar le 1er janvier <strong>et</strong> dechampagne le 31 décembre ?o Contraintes de tempswindowSize : regrouper des événementsminGap : considérer des événements comme trop prochesmaxGap : considérer des événements comme trop éloignésLes <strong>motifs</strong> séquentiels104
IllustrationClient Date ItemsC1 1 RingworldC1 2 FoundationC1 15 Ringworld Engineers, SecondFoundationC2 1 Foundation, RingworldC2 20 Foundation and EmpireC2 50 Ringworld EngineersSupport = 50% : <strong>et</strong>windowSize=7 jours : Les <strong>motifs</strong> séquentiels105
Contraintes temporelleso d = < 1 (1) 2 (2 3) 3 (4) 4 (5 6) 5 (7)>o Candidat : C = n windowSize = 3, minGap=0, maxGap = 5,n d = - Donc C est inclus dans do Candidat : C = n windowSize = 1, minGap=3, maxGap = 4,n d =n minGap pas respecté entre 3 <strong>et</strong> 5 ! C pas inclus dansd106Les <strong>motifs</strong> séquentiels
Comment gérer les contraintes ?Candidats stockésEn mémoireUn tupleT={cid, }+wS, minGap, maxGapBacktrackingBASE DE DONNEESMEMOIRE CENTRALELes <strong>motifs</strong> séquentiels107
Inclusion des contraintesClient Date ItemsC1 1 10C1 7 20C1 13 30C1 17 40C1 18 50C1 24 60minGap=1windowSize=5Les <strong>motifs</strong> séquentiels108
Recherche des inclusionsDate 1 7 13 17 18 24C 1 2 3 4 5 6Les <strong>motifs</strong> séquentielswindowSize = 5, minGap = 1Via minGapPuis avec windowSizeEn fait:<strong>et</strong> 109
Recherche des inclusions (cont.)Date 1 7 13 17 18 24C 1 2 3 4 5 61 2 3 4 5 6minGap3 44 53 4 5Les <strong>motifs</strong> séquentiels110
Recherche des inclusions (cont.)1 2 3 4 5 6minGap3 44 53 4 5Les <strong>motifs</strong> séquentiels112
Recherche des inclusions (cont.)51 2 3 464 53 43 4 5Regrouper ensemble les nœuds de même origineLes <strong>motifs</strong> séquentiels113
Recherche des inclusions (cont.)1 2 3 64 53 4 5Supprimer les nœuds inclus ayant même destinationLes <strong>motifs</strong> séquentiels114
Recherche des inclusions (cont.)1 2 3 64 53 4 5 <strong>et</strong> Les <strong>motifs</strong> séquentiels115
Recherche des inclusions (cont.)SDBArbre des candidatsAVANTSGTC{S1, S2, .. Sn}DBArbre des candidatsAPRESLes <strong>motifs</strong> séquentiels116
Plano Contexte généralo Règles d’associationo Motifs séquentielso Applications : Web Mining, Text Miningo Conclusions117
118
Web Usage Miningo Analyse de l’usage des visiteurs sur un site Webo Les pages contiennent l’informationo Les liens sont des « routes » (hyperliens)o Comment les personnes naviguent-elles surIntern<strong>et</strong> ?n Web Usage Mining (Clickstream Analysis)n Information sur les chemins de navigationdisponibles dans des fichiers logs.o Principe :intégrer <strong>et</strong> « fouiller » ces données pour en pro<strong>du</strong>ireApplicationsde l’information <strong>et</strong> de la connaissance119
Web Usage Miningo Pourquoi analyse l’usage des sites Web ?o La connaissance sur la manière dont les visiteursutilisent un site Web perm<strong>et</strong> de :n Fournir une aide pour réorganiser siten Aider le concepteur à positionner l’informationimportante que les visiteurs recherchent.n Précharger <strong>et</strong> cacher les pagesn Fournir des sites adaptatifs (personnalisation)n Eviter le « zapping »o Utile dans le cas <strong>du</strong> e-commerceApplications120
Exemple d’utilisationStatistiquesgénéralesAnalyse <strong>du</strong>contenuPointd’entréeParcoursPerformance<strong>du</strong> siteGroupementdes clientsCiblages desclientsComportementdes clientsR<strong>et</strong>enir lesclientsCampagneadaptéeCampagnecibléeModificationdynamiqueApplications121
Web Usage Miningo De nombreux outils disponibleso Statistiques générales :n Nombre de hitsn Quelle est la page la plus populaire <strong>du</strong> site ?n Qui a visité le site ?n Qu’est ce qui a été téléchargé ?n Quels sont les mots clés utilisés pour venir sur lesite ?Applications122
Web Usage Mining30%Promo« 75% des parisiens qui achètent une raqu<strong>et</strong>te de tennisachètent trois mois après des chaussures »Modification dynamiqueApplications123
Log or Logs?Information sur les chemins de navigation dans les fichiers logsApplications124
Web logsIP or domain nameUser Id Date and Time Request123.456.78.9 - - [24/Oct/1999:19:13:44 –0400] “GET /Images/tagline.gif HTTP/1.0”200 1449 http://www.teced.com/ “Mozilla/4.51 [en] (Win98;I)”StatusFile SizeReferrer URLBrowserCookiesApplications125
Web logsIP Address Time M<strong>et</strong>hod/URL/Protocol Sta Size ReferredAgent123.456.78.9 [25/Apr/1998:03:04:41 –0500 GET A.html HTTP/1.0 200 3290 - Mozilla/3.01 (Win95, I)123.456.78.9 [25/Apr/1998:03:05:34 –0500 GET B.html HTTP/1.0 200 2050 A.html Mozilla/3.01 (Win95, I)123.456.78.9 [25/Apr/1998:03:05:39 –0500 GET L.html HTTP/1.0 200 4130 - Mozilla/3.01 (Win95, I)123.456.78.9 [25/Apr/1998:03:06:02 –0500 GET F.html HTTP/1.0 200 5096 B.html Mozilla/3.01 (Win95, I)123.456.78.9 [25/Apr/1998:03:06:58 –0500 GET A.html HTTP/1.0 200 3290 - Mozilla/3.01 (X11, I, IRIX6.2, IP22)123.456.78.9 [25/Apr/1998:03:07:42 –0500 GET B.html HTTP/1.0 200 2050 A.html Mozilla/3.01 (X11, I, IRIX6.2, IP22)123.456.78.9 [25/Apr/1998:03:07:55 –0500 GET R.html HTTP/1.0 200 8140 L.html Mozilla/3.01 (Win95, I)123.456.78.9 [25/Apr/1998:03:09:50 –0500 GET C.html HTTP/1.0 200 1820 A.html Mozilla/3.01 (X11, I, IRIX6.2, IP22)123.456.78.9 [25/Apr/1998:03:10:02 –0500 GET O.html HTTP/1.0 200 2270 F.html Mozilla/3.01 (Win95, I)123.456.78.9 [25/Apr/1998:03:10:45 –0500 GET J.html HTTP/1.0 200 9430 C.html Mozilla/3.01 (X11, I, IRIX6.2, IP22)123.456.78.9 [25/Apr/1998:03:12:23 –0500 GET G.html HTTP/1.0 200 7220 B.html Mozilla/3.01 (Win95, I)123.456.78.9 [25/Apr/1998:05:05:22 –0500 GET A.html HTTP/1.0 200 3290 - Mozilla/3.01 (Win95, I)Clients Dates ItemsApplications126
Web logsIP Address Time M<strong>et</strong>hod/URL/Protocol Sta Size ReferredAgent123.456.78.9 [25/Apr/1998:03:04:41 –0500 GET A.html HTTP/1.0 200 3290 - Mozilla/3.01 (Win95, I)123.456.78.9 [25/Apr/1998:03:05:34 –0500 GET B.html HTTP/1.0 200 2050 A.html Mozilla/3.01 (Win95, I)123.456.78.9 [25/Apr/1998:03:05:39 –0500 GET L.html HTTP/1.0 200 4130 - Mozilla/3.01 (Win95, I)123.456.78.9 [25/Apr/1998:03:06:02 –0500 GET F.html HTTP/1.0 200 5096 B.html Mozilla/3.01 (Win95, I)123.456.78.9 [25/Apr/1998:03:06:58 –0500 GET A.html HTTP/1.0 200 3290 - Mozilla/3.01 (X11, I, IRIX6.2, IP22)123.456.78.9 [25/Apr/1998:03:07:42 –0500 GET B.html HTTP/1.0 200 2050 A.html Mozilla/3.01 (X11, I, IRIX6.2, IP22)123.456.78.9 [25/Apr/1998:03:07:55 –0500 GET R.html HTTP/1.0 200 8140 L.html Mozilla/3.01 (Win95, I)123.456.78.9 [25/Apr/1998:03:09:50 –0500 GET C.html HTTP/1.0 200 1820 A.html Mozilla/3.01 (X11, I, IRIX6.2, IP22)123.456.78.9 [25/Apr/1998:03:10:02 –0500 GET O.html HTTP/1.0 200 2270 F.html Mozilla/3.01 (Win95, I)123.456.78.9 [25/Apr/1998:03:10:45 –0500 GET J.html HTTP/1.0 200 9430 C.html Mozilla/3.01 (X11, I, IRIX6.2, IP22)123.456.78.9 [25/Apr/1998:03:12:23 –0500 GET G.html HTTP/1.0 200 7220 B.html Mozilla/3.01 (Win95, I)123.456.78.9 [25/Apr/1998:05:05:22 –0500 GET A.html HTTP/1.0 200 3290 - Mozilla/3.01 (Win95, I)Clients Dates ItemsApplications127
Web logsIP Address Time M<strong>et</strong>hod/URL/Protocol Sta Size ReferredAgent123.456.78.9 [25/Apr/1998:03:04:41 –0500 GET A.html HTTP/1.0 200 3290 - Mozilla/3.01 (Win95, I)123.456.78.9 [25/Apr/1998:03:05:34 –0500 GET B.html HTTP/1.0 200 2050 A.html Mozilla/3.01 (Win95, I)123.456.78.9 [25/Apr/1998:03:05:39 –0500 GET L.html HTTP/1.0 200 4130 - Mozilla/3.01 (Win95, I)123.456.78.9 [25/Apr/1998:03:06:02 –0500 GET F.html HTTP/1.0 200 5096 B.html Mozilla/3.01 (Win95, I)123.456.78.9 [25/Apr/1998:03:06:58 –0500 GET A.html HTTP/1.0 200 3290 - Mozilla/3.01 (X11, I, IRIX6.2, IP22)123.456.78.9 [25/Apr/1998:03:07:42 –0500 GET B.html HTTP/1.0 200 2050 A.html Mozilla/3.01 (X11, I, IRIX6.2, IP22)123.456.78.9 [25/Apr/1998:03:07:55 –0500 GET R.html HTTP/1.0 200 8140 L.html Mozilla/3.01 (Win95, I)123.456.78.9 [25/Apr/1998:03:09:50 –0500 GET C.html HTTP/1.0 200 1820 A.html Mozilla/3.01 (X11, I, IRIX6.2, IP22)123.456.78.9 [25/Apr/1998:03:10:02 –0500 GET O.html HTTP/1.0 200 2270 F.html Mozilla/3.01 (Win95, I)123.456.78.9 [25/Apr/1998:03:10:45 –0500 GET J.html HTTP/1.0 200 9430 C.html Mozilla/3.01 (X11, I, IRIX6.2, IP22)123.456.78.9 [25/Apr/1998:03:12:23 –0500 GET G.html HTTP/1.0 200 7220 B.html Mozilla/3.01 (Win95, I)123.456.78.9 [25/Apr/1998:05:05:22 –0500 GET A.html HTTP/1.0 200 3290 - Mozilla/3.01 (Win95, I)Clients Dates ItemsApplications128
KDD pour WUM ?Transformer lesdonnées pour pouvoirapprendreLiens dynamiques, <strong>Site</strong>s webadaptatifs, évaluation de site…Pre - processingWeb Log FilesExtraction de <strong>motifs</strong>ApplicationClustering, Classification,Association Rule, SequentialPattern…Applications129
Pre-traitementso Data Filtering - Data Cleaningn Status Code (1xx: Informational,2xx: Success,3xx:Redirection, 4xx: Client Error, 5xx: Server Error)n Requêtes automatiques (bots, performancemonitoring systems)n Suppression des entrées concernant des requêtespour des fichiers graphiques, des frames …n Suppression des entrées générées par des spiders/crawlers (utilisés par les moteurs de recherche)Applications130
Web Usage Miningo Préparation des données (suffixe, éliminationsdes robots – agents de moteurs)o Identification de l’utilisateurApplicationsTout n’est pas dans le fichier Access LogUtilisation d’heuristiques :Si une page est demandée <strong>et</strong> qu’elle n’est pasdirectement liée aux autres pages, il est probablequ’il existe différents utilisateurs sur la mêmemachineUtilisation des informations sur l’IP, le nom de la machine,le navigateur, des informations temporelles …131
Web Usage Miningo Problèmes :n ID utilisateurs supprimées pour des raisons desécuritén IP indivi<strong>du</strong>elles cachées par les proxysn Les caches des proxy <strong>et</strong> <strong>du</strong> côté clientso Solutions actuelles :Applicationsn Enregistrement de l’utilisateur – pratique ??n Cookies – difficile ??n « Cache busting » - augmente le trafic sur le réseau(inutile avec certains proxy)132
Web Usage MiningApplicationso Sessions : Comment identifier/définir un<strong>et</strong>ransaction d’un visiteur ?o « Time Oriented »n Durée totale d’une session : ≤ 30 minutesn Par temps passé sur une page : ≤ 10 minutes/pageo « Navigation Oriented »n Le « referrer » est la page précédente, ou le «referrer » n’est pas défini mais demandé dans les10 secondes, ou le lien de la page précédente à lapage courante dans le site web133
Web Usage Miningo Sources de donnéesn Utilisation de fichiers logsn Mais aussi cookies, bases de données des clients,….Applications134
Web Usage Miningo Architecture typeFichiersAccess LogMécanisme de requêtesDonnéesExtérieuresPré-traitementFouillede DonnéesRègles d’AssociationsMotifs séquentielsClassificationNouvellesDonnéesRepositoryApplications135
Web Usage Miningo Limites de l ’approche : analyse en différéeo Vers une approche « temps réel »o Pourquoi ne pas extraire les <strong>motifs</strong> séquentielsavec une méta-heuristique ?o Inspiration des algorithmes génétiqueso Principe assez similaireApplications136
Web Usage Mining temps réelSéquence fréquenteOpérateurs de voisinagePopulation de candidats+Candidats évaluésSéquences fréquentesDBApplicationsNouvelle population de Séquences fréquentes137
Web Usage Mining temps réelSéquence fréquenteM1Opérateurs de voisinageM2Population de candidats+Candidats évaluésSéquences fréquentesMnApplicationsNouvelle population de Séquences fréquentes138
Web Usage Mining temps réelo Opérateurs de voisinageo Ajout d ’item avec l ’item c< (c) (a) (b) (d)> o Nouvel item fréquent : candidats de taille 2Applications139
Web Usage Mining temps réelo Croisement <strong>et</strong> o Croisement amélioréla coupure se fait après le plus long préfixe communo Dernier croisementla seconde séquence est choisie pour son préfixeo Extension de séquencemélange entre ajout d ’item <strong>et</strong> nouvel item fréquentApplications140
Avantages <strong>du</strong> WUM temps réelo Disponibilité immédiaten en tant que pré-calcul ou comme résultat directo Un nouveau type de séquencen « la période <strong>du</strong> 02 au 07 janvier abrite le fréquent
Du WUM au P2P Miningo Les systèmes d’échanges pair-à-pair (P2P) :n Offrir à une large communauté des applications pourpartager des fichiers, partager des calculs, dialoguerou communiquer en temps réel, …n bonne infrastructure pour les opérations sur degrandes masses de données ou avec de trèsnombreux calculs,… la fouille de donnéeso Un constat :la distribution “Mandriva Linux2005” est souvent téléchargée avec CD1.iso,puis CD2.iso <strong>et</strong> finalement CD3.iso.Applications142
P2P Miningo Connaissance pourn Aider à rechercher des documents liésn Éviter des opérations de broadcastn Web Usage Mining vs. P2P Usage Miningo Des <strong>motifs</strong> … oui mais …. attentionn Systèmes très dynamiqueso Les noeuds agissent indépendamment les uns des autresn Comportement très dynamique car cible ouverten Quand un noeud disparaît, les séquences de ce noeuddisparaissent également de la base distribuéeApplicationso Quid de la connaissance extraite ?143
P2P Mining : problématiqueo Un item i => [op; i] ou op={d (download), r(request)}o Une séquence maintenant S=< ([d; 3]) ([d; 4] [r;5]) ([d; 8]) >Un utilisateur a téléchargé 3, puis il a téléchargé4 <strong>et</strong> interrogé sur 5 en même temps <strong>et</strong> enfin il atéléchargé 8Applications144
P2P Mining : problématique (cont.)o Soit D t la base au temps t, nous avons :Pour un nœud u, nous notons sa partition (ses données)D tu .Nous avons donc, pour tous les nœuds connectés à uninstant tD t = ∪D tuo Problème : trouver les séquences dont le nombred’occurrences dans Dt est supérieur ou égal àminSupp.Applications145
P2P Mining - Hypothèseo Hypothèses :Réseau de pairs non structuréo Pair D tuest capable de recevoir des séquencescandidates, d’évaluer leur support dans D tu<strong>et</strong> der<strong>et</strong>ourner le résultatApplications146
P2P Mining – Hypothèse (cont.)o Un pair spécial ( “DistributedSP ”) qui estconnecté à tous les nouveaux pairs qui arriventsur le réseauDistributedSPDtD tu1D tu5D tu2ApplicationsD tu3D tu4147
Une nouvelle approcheo Principe général : Générer (distribution deséquences candidates) Elaguer1) L’ensemble des items fréquents est extrait des pairsconnectés.2) L’ensemble de tous les candidats de taille 2 est généré. Cescandidats sont évalués par les pairs connectés pourconnaître ceux qui ont un nombre d’occurrences suffisantsur toute la base3) Les résultats sont récupérés par le pair DistributedSP4) L’heuristique, basée sur des opérateurs génétiques est alorsappliquée <strong>et</strong> le nouvel ensemble de candidats est envoyéaux pairs connectés pour évaluation.Processus répété tant qu’il existe des noeuds connectés.Applications148
Une nouvelle approcheApplications149
Text Miningo Qu'est ce que le Text Miningn L'extraction de connaissance à partir de donnéestextuelles (découvertes de tendances, classification/organisation, ….)o Les BD textuelles sont omniprésentesn Bases de données de bibliothèques, bases de donnéesde documents, mails, WWW, …n Les données textuelles sont structurées ou semistructuréeso La quantité de données textuelles augmente trèsApplications rapidement « Le texte est facile à pro<strong>du</strong>ire »150
Text Mining vs. Recherche d’informationo Recherche d ’Information (Information R<strong>et</strong>rieval)Domaine développé en parallèle des bases de donnéesL'information est organisée dans (un grand nombres de)documentPb : localiser les documents pertinents en se basant surl'entrée de l'utilisateur (mots clés ou documentsexemples)o Quid de la connaissance supplémentaire ?o Requête vs Data MiningApplications151
Text Mining - Classificationo Classification automatiquen Classification automatique d'un grand nombre dedocuments (pages Web, mails, fichiers textuels)basée sur un échantillon de documents pré-classifiéo Mise en oeuvreApplicationsn Echantillon : des experts génèrent l'échantillonn Classification : l'ordinateur découvre les règles declassificationn Application : les règles découvertes peuvent êtreutilisées pour classer des nouveaux documents <strong>et</strong> les152affecter à la bonne classe
Text Mining - Classificationo Quelques problèmesApplicationsn Synonymie : un mot T peut ne pas apparaître dansun document mais si le document est très lié à T(data mining / software pro<strong>du</strong>ct)n Polysémie : le même mot peut avoir plusieurs sens(mining)n Représentation des documents (vecteurs de termes,choix des termes représentatifs, calcul de la distanceentre un vecteur représentant le groupe dedocuments <strong>et</strong> celui <strong>du</strong> nouveau document, …)n Evolution des classes dans le temps153
Text Mining - Corrélationso Analyse <strong>d'association</strong>s basée sur des mots clésn Rechercher des associations/corrélations parmi desmots clés ou des phraseso Mise en œuvren Pré-traitement des données : parser, supprimer lesmots inutiles (le, la, …) => prise en compte d'uneanalyse morpho-syntaxique (e.g. lemmatiseur)n Un document est représenté par : (document_id,{ensemble de mots clés})n Appliquer des algorithmes de recherche de règles<strong>d'association</strong>Applications154
Text Mining - Corrélationso Quelques problèmesn Ceux <strong>du</strong> traitement de la langue naturellen Les mots inutiles (ordinateur ? Utile ?) – Ré<strong>du</strong>ction del’espace de recherchen Les associations de mots, phrase, paragraphe, ...Applications155
Text Mining – Analyse de tendanceso Rechercher des tendances dans les documentso Mise en œuvren Pré-traitement : attention l'ordre est importantn Document représenté par : (document_id, )n Appliquer des algorithmes de <strong>motifs</strong> séquentielsn Générer l'historique des phrasesn Recherche les phrases qui correspondent à destendancesApplications156
Text Mining – Analyse de tendanceso Principesn Un mot : (m)n Une phrase : n Paramètres : WindowSize, MaxGap, MinGap) Unephrase = une phraseo Une phrase = un ensemble de mots procheso Une phrase = un paragrapheminGap maxGap(m1) (m2) (mn)ApplicationsWindowSize157
Text Mining – Analyse de tendanceso Gérer l'historique des phrasesApplicationsn Partitionner les documents en fonction de leurestampille (ex : année pour les brev<strong>et</strong>s, mois pourdes documents sur le Webn Pour chaque partition, génération des ensemblesfréquents de phrasesn Maintenir l'historique des supports pour chaquephrasen Interroger l'historique des phrases pour connaître lestendances (tendance récente à monter, transitionrécente, résurgence d'usage, ….)158
Text Mining – Analyse de tendances4,5Brev<strong>et</strong>s classés dans la catégorie « In<strong>du</strong>ced Nuclear Reactions:Processes, Systems and Elements »43,5Support (%)32,521,510,5
Conclusionso Les points forts :n Résultats clairs <strong>et</strong> explicites.n Adaptée à l’exploitation non dirigée des donnéesn Travaille sur des données de taille variablen Calculs utilisés simples à comprendreo Les points faibles :n Volume de calculs (fonction <strong>du</strong> nombre d’items)n Difficulté de sélectionner le bon nombred’articlesConclusions160
Conclusionso Depuis 1996 :o Problème de recherche ouverto Données de plus en plus complexes(représentations, …), obtenues de plus en plusrapidement (incrémental, flots de données),avec de nouvelles contraintes (préservation de lavie privée, contraintes de dimensions,temporelles), avec valeurs manquantes, …o Besoins de nouveaux indicateurs de qualitéConclusions161
Conclusionso Une URL : KDD Mine ttp://www.kdnugg<strong>et</strong>s.como Google, citeseer, …o Quelques outilsIntelligent Miner (www.ibm.com)Entreprise Miner (SAS Institute)MineS<strong>et</strong> (Silicon Graphics Inc.)Clementine (Integral Solutions Ltd, rach<strong>et</strong>é par SPSS)DBMiner (www.dbminer.com)o Le proj<strong>et</strong> Weka (librairie de classes Java)Conclusionshttp://www.cs.waikato.ac.nz/ml/weka162
Référenceso R. Agrawal, T. Imielinski, and A. Swami. Mining association rules b<strong>et</strong>ween s<strong>et</strong>s of items in large databases.SIGMOD'93, 207-216, Washington, D.C.o R. Agrawal and R. Srikant. Fast algorithms for mining association rules. VLDB'94 487-499, Santiago, Chile.o R. Agrawal and R. Srikant Mining sequential patterns, In Proc. ICDE95, Taiwan, March 1995.o R.J. Bayardo. Efficiently mining long patterns from databases. In Proc. SIGMOD98, WA, June 1998o S. Brin R. Motwani, J. Ullman, and S. Tsur. Dynamic items<strong>et</strong> counting and implication rules for mark<strong>et</strong> bask<strong>et</strong>data. In SIGMOD97o M.N. Garofalakis, R. Rastogi, K. Shim: SPIRIT: Sequential Pattern Mining with Regular ExpressionConstraints. VLDB 1999: 223-234, Edinburgh, Scotland.o J. Han, J. Pei, and Y. Yin: Mining frequent patterns without candidate generation. In Proc. ACM-SIGMOD2000, pp. 1-12, Dallas, TX, May 2000.o H. Mannila, H. Toivonen, and A. I. Verkamo. Efficient algorithms for discovering association rules. KDD'94,181-192, Seattle, WA, July 1994.o J. Han and M. Kamber, Data Mining: Concepts and Techniques, Morgan Kaufmann, 2000.o J. Han, J. Pei, B. Mortazavi-Asl, Q. Chen, U. Dayal, M.-C. Hsu, "FreeSpan: Frequent Pattern-ProjectedSequential Pattern Mining", In Proc. 2000 Int. Conf. on Knowledge Discovery and Data Mining (KDD'00),Boston, MA, August 2000.o J. Han, J. Pei, B. Mortazavi-Asl, Q. Chen, U. Dayal, M.-C. Hsu, "FreeSpan: Frequent Pattern-ProjectedSequential Pattern Mining", In Proc. 2000 Int. Conf. on Knowledge Discovery and Data Mining (KDD'00),Boston, MA, August 2000.o J. Han, J. Pei, and Y. Yin: Mining frequent patterns without candidate generation. In ACM-SIGMOD2000,Dallas, TX, May 2000.o V. Kapoor, P. Poncel<strong>et</strong>, F. Trouss<strong>et</strong> and M. Teisseire. "Privacy Preserving Sequential Pattern Mining inDistributed Databases". Proceedings of the Fifteenth Conference on Information and Knowledge Management(CIKM 2006), Arlington, US, November 2006.163
RéférencesooooooooH. Mannila, H. Toivonen and A.I. Verkamo. Efficient algorithms for discovering association rules. In Proc.KDD94, WA, July 1994P.A. Laur, M. Teisseire and P. Poncel<strong>et</strong>. "AUSMS: An Environment for Frequent Sub-Substructures Extractionin a Semi-Structured Object Collection". Proceedings of the 14th International Conference on Database andExpert Systems Applications (DEXA'03), Prague, Czech Republic, LNCS, pages 38-45, September 03.F. Masseglia, P. Poncel<strong>et</strong> and M. Teisseire. "Peer-to-Peer Usage Mining: a Distributed Mining Approach".Proceedings of the IEEE 20th International Conference on Advanced Information N<strong>et</strong>working and Applications(AINA 2006), Vienna, Austria, April 2006.F. Masseglia, F. Cathala and P. Poncel<strong>et</strong>. "PSP: Prefix Tree For Sequential Patterns". Proceedings of the 2ndEuropean Symposium on Principles of Data Mining and Knowledge Discovery (PKDD'98), Nantes, France,LNAI, Vol. 1510, pp. 176-184, September 1998.F. Masseglia, M. Teisseire <strong>et</strong> P. Poncel<strong>et</strong>. "Extraction de <strong>motifs</strong> séquentiels - Problèmes <strong>et</strong> Méthodes". RevueIngénierie des Systèmes d'Information (ISI), Numéro spécial "Extraction <strong>et</strong> usages multiples de <strong>motifs</strong> dans lesBases de Données", Vol.9, N. 3-4, 2004, pp.183-210.F. Masseglia, M. Teisseire and P. Poncel<strong>et</strong>. "Pre-Processing Time Constraints for Efficiently MiningGeneralized Sequential Patterns". Proceedings of the 11th International Symposium on TemporalRepresentation and Reasoning (TIME'04), Tatihou, Basse Normandie, France, July 2004F. Masseglia, P. Poncel<strong>et</strong> and M. Teisseire. "Incremental Mining of Sequential Patterns in Large Databases".Data and Knowledge Engineering, Volume 46, Issue 1, pages 97-121, 2003.(PDF)F. Masseglia, M. Teisseire and P. Poncel<strong>et</strong>. "HDM: A Client/Server/Engine Architecture for Real Time WebUsage". Knowledge and Information Systems (KAIS) journal, Vol. 5, N° 4, October 2003.164
Référenceso C. Raissi and P. Poncel<strong>et</strong>. "Towards a New Approach for Mining Maximal Frequent Items<strong>et</strong>s over DataStream". Journal of Intelligent Information Systems, Springer (to appear 2006)o C. Raissi, P. Poncel<strong>et</strong> and M. Teisseire. "SPEED: Mining Maximal Sequential Patterns over Data Streams".Proceedings of the 3rd IEEE International Conference on Intelligent Systems (IEEE IS 2006), London, UK,September 2006.o A. Savasere, E. Omiecinski, and S. Navathe. An efficient algorithm for mining association in large databases. InVLDB95o R. Srikant and R. Agrawal Mining sequential patterns: Generations and performance improvements, In Proc.EDBT96, France, March 1996.o H. Toivonen. Sampling large databases for association rules. In VLDB96o Wei Wang, Jiong Yang, Philip S. Yu: Mining Patterns in Long Sequential Data with Noise. SIGKDDExplorations 2(2): 28-33 (2000)o M.J. Zaki. Efficient enumeration of frequent sequences. CIKM98. Novermber 1998.165