slides ... - Vincent Lemaire

publicité
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
Téléchargement