Fouille de données temporelles Objectif : Conception d'outils pour l'aide à la surveillance de systèmes dynamiques ●Fouille de données temporelles ● ● Données : séries temporelles, données séquentielles datées Fouille de données : itemsets et motifs séquentiels Algorithme de fouille d'itemsets ou de séquences à partir d'une base de données de transactions ● ● ● ● Itemsets : Apriori, FP-Growth, LCM, … Motifs séquentiels : GSP, PrefixSpan, SPADE, … Méthode de comptage des motifs basée sur le nombre de « séquences » ou « transactions » qui supportent un motif Motifs séquentiels ● ● non-rigides : le motif « (ab)c » doit être vu comme « (ab).*b » 3 Fouille incrémentale d'une séquence d'itemsets Longue séquence d'itemsets (infinie) ● B A C B A 4 5 6 C A B A 7 8 A C B B C C B A 9 10 11 12 13 B A 14 Approche incrémentale ● ● Extraction des motifs séquentiels fréquents dans la fenêtre des itemsets récents 4 Fouille de données séquentielles : version incrémentale ● Algorithme non-incrémentaux de fouille de séquences à partir d'une base de données de transactions ● ● Motifs séquentiels : GSP, PrefixSpan, SPADE, SeqLCM, BIDE, … Versions incrémentales 5 Fouille de données séquentielles : version incrémentale ● Algorithme non-incrémentaux de fouille de séquences à partir d'une base de données de transactions ● ● Motifs séquentiels : GSP, PrefixSpan, SPADE, SeqLCM, BIDE, … Versions incrémentales ● Comptage des transactions 6 Fouille de données séquentielles : version incrémentale Algorithme non-incrémentaux de fouille de séquences à partir d'une base de données de transactions ● ● Motifs séquentiels : GSP, PrefixSpan, SPADE, SeqLCM, BIDE, … Versions incrémentales ● ● Pas de version incrémentale pour l'extraction de motifs dans une séquence unique 7 Support des motifs séquentiels Différentes méthodes de comptage des motifs dans les séquences ● ● ● WINEPI : comptage des fenêtres de largeur fixe qui contiennent le motif MINEPI : comptage des « occurrences minimales » ● ● ● Une occurrence Om est minimale s'il n'existe pas d'occurrence du même motif dans Om Ding et al. 2009 : non-recouvrement fort d'instances normales Pour les comptages de séquences d'items, voir Achar, Laxman et 8 Fouille incrémentale d'une séquence d'itemsets Longue séquence d'itemsets (infinie) ● B A C B A 4 5 6 C A B A 7 8 A C B B C C B A 9 10 11 12 13 B A 14 Motifs séquentiels fréquents ● ● Support : occurrences minimales (Mannila et al., 1997) ● occurrences d'un motif sans sous-occurrence du même motif : α = A(AB)A : [5,6,7] (mo), [7,8,9] (mo), [9,13,14] (mo), [6,8,9] (Ømo) 9 Représentation des motifs fréquents Utilisation d'une représentation des motifs fréquents sous la forme d'un arbre de préfixage ● ● ● ● #Occurrences minimales est une mesure anti-monotone : support décroissant ou égal de la racine vers les feuilles Deux types d'arc : séquence et combinaison (Masseglia et al.) Un nœud comprend ● ● La représentation du motif séquentiel Une liste des instances dans la fenêtre ● Uniquement la position du premier et du dernier élément de l'instance d'un motif Principe de l'algorithme W F: … a (bc) a 'b (abc) ... W 1 2 3 4 5 6 ... while lire new_itemset do ● ● Supprimer premier itemset de la fenêtre ● ● ● Mettre à jour les listes d'occurrences (supprimer les occurrences contenant un item du premier itemset) Élaguer noeuds ne satisfaisant pas la contrainte de support minimal Ajouter new_itemset en dernière position de la fenêtre ● ● ● Construire arbre des motifs de new_itemset Fusionner cet arbre des motifs avec l'arbre des motifs courants Mettre à jour la liste des occurrences 11 Principe de l'algorithme ● Suppression du premier itemset de W A2(W) W F: … a (bc) a 'b (abc) ... W 1 2 3 4 5 6 ... () a(1),(3) b(2),(4) ab(1,2), (3,4) 12 Principe de l'algorithme ● W F: … a (bc) a 'b (abc) ... W Création d'un arbre pour le nouvel itemset A2(W) 1 2 3 4 5 6 ... () a(1),(3) b(2),(4) 13 Principes de l'algorithme W F: … a (bc) a 'b (abc) ... W 1 ● 2 3 4 5 6 ... Fusion de l'arbre de l'itemset dans l'arbre des fréquents ● Un nouveau motif fréquent dans W' est nécessairement la concaténation d'une sous-séquence fréquente dans <(bc)ab> (W moins premier itemset) avec un sous-itemset de (abc) 14 Principes de l'algorithme W F: … a (bc) a 'b (abc) ... W 1 ● 2 3 4 5 6 ... Fusion de l'arbre de l'itemset dans l'arbre des fréquents ● Un nouveau motif fréquent dans W' est nécessairement la concaténation d'une sous-séquence fréquente dans <(bc)ab> (W moins premier itemset) avec un sous-itemset de (abc) T(abc) a (5) () b (5) c (5) (5) 15 Principes de l'algorithme Complétion des listes d'instances W F: … a (bc) a 'b (abc) ... W 1 2 3 4 5 6 ... ● 16 Principes de l'algorithme ● W F: … a (bc) a 'b (abc) ... W 1 Élagage des motifs non-fréquents A2(W')() a(3),(5) 2 3 4 b(2),(4),(5) ba(2,3), (4,5) 5 6 ... c(2),(5) (bc)(2), (5) 17 Propriétés de l'algorithme L'algorithme est correct et complet ● ● Incrémental ?? Il reste le problème de la complétion de la bordure qui implique un retour sur la fenêtre ● L'algorithme n'est pas « single pass » Les motifs extraits sont les occurrences minimales ●Possibilité de paralléliser les traitements sur les arbres ●Améliorations ● ● Utilisation d'une contrainte de gap maximum entre itemsets 18 Optimisation 1 : réduction a priori de l'arbre à fusionner Si un motif du nouvel itemset n'est pas fréquent, il n'est pas ● Optimisation 2 : traitements des quasi-fréquents Amélioration 3 : algorithme single-pass Il est possible de modifier ● Amélioration 4 : vers une version utilisant les motifs clos (en cours) Objectif ● ● ● Nouvelle version de l'algorithme permettant de maintenir à jour un arbre des motifs clos Motifs séquentiel clos ? ● ● ● Q Pour les motifs séquentiels, la clôture peut s'exprimer en fonction de la position d'insertion : début, fin ou milieu Arbres PSP → Utilisation de la backward closure (+ itemset closure) On espère de meilleurs résultats ... ● Le nombre de motifs clos est (très) inférieur au nombre de motifs P Ajout de l'item {a} Q M Mu{a} P Pu{a} 22 Implémentation et expérimentations Implémentation C++ ●Comparaison de l'approche avec un algorithme naïf ●Algorithme naïf ● ● ● non-incrémental extrait les motifs fréquents dans chaque fenêtre successive Utilisation de données simulées ● ● ● Générateur aléatoire de séquences IBM : 1 longue séquence Générateur personnel : Bernoulli, Poisson 23 Historique ● ● ● Évolution de la fréquence des motifs séquentiels au cours du temps Détection de changement <a(bc)ab(abc)abc(ab)a>, w = 4, σ = 2 25 Conclusion Proposition d'une méthode incrémentale basée sur les occurrences minimales ● ● Pros ● ● ● ● Premier(?) algorithme de fouille incrémentale de motifs séquentiels sur séquence d'itemsets unique Algorithme complet, correct Une version facilement parallélisable (parallélisée … mais mal !) Cons ● ● Complexité limitant l'usage en pratique sur flux de données (mémoire) Comparaisons avec WinEPI et MinEPI : notre méthode est moins bonne (pour 26