• Aucun résultat trouvé

9.1 Classification des caractéristiques TL des régions

9.1.3 ECLAT pour les graphes

L’algorithme ECLAT [Zaki, 2000c, Zaki et al., 1997] propose une recherche des motifs fréquents par un parcourt en profondeur de l’arbre de préfixes. Afin de réduire la recherche, l’algorithme exploite la propriété d’anti-monotonie selon laquelle un sous-motif d’un motif fréquent est nécessairement fréquent. Ainsi, les motifs candidats de longueur l peuvent être obtenus en effectuant la jonction de motifs de longueur l − 1 différant que d’un motif. L’arbre de préfixe permet d’effectuer cette opération de façon efficace car les extensions possibles pour un nœud correspondent à ses frères à droite.

Dans le cas des graphes, nous avons vu que cette propriété n’est plus vérifiée. En revanche, un motif dont les sous-motifs sont fréquents est fréquent. L’arbre de préfixe ne contient donc généralement pas l’ensemble des motifs fréquents. En effet, l’ordre dans lequel les symboles sont ajoutés à un motif influe sur le motif final obtenu. Ainsi, en reprenant l’exemple de la figure 9.1, si le nœud A est traité en premier, l’arbre de préfixe ne contiendra aucun motif contenant A. En effet, si l’on considère le graphe dans sa totalité, la fréquence de A est 1. En revanche, si l’ordre considéré le place à la fin, des motifs fréquents le contiendront, par exemple : AMS ou ACJ.

Lors de la construction de l’arbre, les extensions d’une classe c ne se limitent donc pas aux classes plus grandes que c, mais toutes les classes qui n’appartiennent pas au chemin allant de la racine jusqu’à c sont des extensions candidates. Dans ce cas, l’espace de recherche est le treillis complet, et il n’est pas envisageable de le parcourir, surtout pour les longueurs de STO considérées.

N’ayant pas trouvé d’heuristique appropriée pour ordonner les classes et s’afranchir ainsi du problème de non monotonie, nous proposons d’effectuer un post-traitement consistant

Figure 9.1 – Illustration d’un graphe, vu comme une base de donnée de graphes. Les nu- méros dans les nœuds correspondent aux identifiants de nœuds, et les lettres correspondent aux étiquettes associés (représentant un groupe de radiométries), et les numéros à gauche représentent les identifiants des chemins (c’est-à-dire des STO).

dans la construction de l’arbre, et d’autre part, tous les sous-motifs générateurs d’un motif fermé produiront le même motif par fermeture. Par exemple, pour σmin = 3, IM est un

motif fermé. La fermeture de I et de M est IM. Afin de trouver tous les motifs fréquents, il nous faut donc pour chaque motif fréquent trouvé dans l’arbre, calculer sa fermeture, supprimer les classes qui sont plus grandes que la dernière classe (elles seront traitées ultérieurement), et vérifier que les motifs ainsi obtenus n’ont pas déjà été reportés comme fréquents. Il nous faut donc stocker tous les motifs fréquents, et les parcourir pour chaque ajout de motif agrandi. Cette approche est beaucoup trop coûteuse, d’une part, en temps de calcul, et d’autre part en espace de stockage.

Nous proposons donc de restreindre les motifs d’intérêt aux motifs maximaux. Pour chaque feuille de l’arbre de préfixe, on cherche sa fermeture, et on vérifie qu’elle n’a pas déjà été stockée. Il est donc nécessaire de stocker les motifs maximaux. Le nombre de motifs maximaux étant considérablement réduit par rapport au nombre de motifs fermés et a fortiori de motifs fréquents, cette approche est justifiée.

L’efficacité de l’algorithme ECLAT est principalement due à l’implémentation par bit- map permettant d’obtenir la fréquence d’un motif par des simples & logiques. En effet, la fréquence d’un motif correspond au cardinal de sa couverture. Ceci n’est malheureusement plus la cas pour le LDSOTAG. Ainsi, la fréquence du symbole A de la figure 9.1 est 1 alors que sa couverture est {4, 5, ..., 15}. Voyons commentadapter ce principe aux graphes.

Considérons l’ensemble des sous-chemins correspondant au motif m. Un motif m cor- respond à un ensemble de sous-chemins du LDSOTAG, {si,G(m)}σ(m)i=1 définis de façon

unique. Et chacun des si,G(m) correspond à un ou plusieurs sous-chemins de STO. Par

exemple, en considérant le motif de longueur 1, C, celui-ci a pour fréquence σ({C}) = 3, les sous-chemins de graphe correspondants sont :

s0,G(m)({C}) = u14 (9.9)

s1,G(m)({C}) = u9

s2,G(m)({C}) = u7

Le nœud numéro 14 n’appartient qu’au STO3 alors que les nœuds u9 et u7 appartiennent

respectivement aux STO10et STO11, et STO13et STO14. Nous proposons de regrouper les

sous-chemins de graphe, si,G(m) correspondant à un seul sous-chemin de STO dans un en-

semble appelé ensemble de chemins indépendants de LDSOTAG ou ensembles indépendant de LDSOTAG, et ceux auxquels correspondent plusieurs sous-chemins de STO dans un en- semble appelé ensemble de chemins dépendants de LDSOTAG ou ensemble dépendant de LDSOTAG :

{si,G(m)}σ(m)i=1 = IG(m)∪ DG(m) avec IG(m)∩ DG(m) =∅

IG(m) = si,G(m)|ΨG,c(p(m)) = m et ∃!oj|pkj = si,G(m)

DG(m) = nsi,G(m)|ΨG,c(p(m)) = m et∃oj|pkj = si(m) n j=1 et n > 1 o (9.10)

On appelle ensemble indépendant de STO de m, et on note I(m) l’ensemble des iden- tifiants de STO correspondants à IG(m), et on appelle ensemble de groupes dépendants de

STO de m, et on note D(m) l’ensemble des groupes d’identifiants de STO correspondants à DG(m).

On peut stocker l’ensemble indépendant de STO de m dans un vecteur de bits dont les colonnes représentent les STO, et l’ensemble des groupes dépendants dans une matrice de bits dont les lignes correspondent aux différents groupes, et dont les colonnes correspondent aux identifiants de STO. Par exemple, en reprenant le graphe de la figure 9.1, pour le motif G, on a alors : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 I(G) = 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 D(G) = 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1

Les si,G(m)∈ {si,G(m)}σ(m)i=1 sont disjoints (par l’unicité des sous-chemins de LDSOTAG).

Or chacun d’eux correspond soit à un sous-chemin de STO indépendant, soit à un groupe de sous-chemins de STO dépendants. Donc les lignes de la matrice de bits représentant l’ensemble des groupes dépendants ont une intersection vide. De plus, par définition de la décomposition en ensemble indépendants et en ensemble de groupes dépendant (l’eq.9.10), IG(m)∩ DG(m) =∅, donc le vecteur de bit correspondant à l’ensemble indépendant d’un

motif a une intersection vide avec l’ensemble des vecteurs lignes de la matrice des groupes dépendants. La figure 9.2 représente les matrices I et D du niveau 0 de l’arbre de préfixe du graphe de la figure 9.1.

La jonction de deux motifs m1 et m2 nécessite d’effectuer les quatre intersections entre

ensembles dépendants et indépendants des deux motifs. On définit l’intersection entre une matrice de bits et un vecteur de bits comme étant l’intersection de toutes les lignes de la matrices avec le vecteur, et on définit l’intersection entre deux matrices de bits comme étant l’intersection entre chaque ligne de la première matrice vers chacune des lignes de la deuxième matrice.

L’intersection d’un ensemble indépendant avec un autre ensemble indépendant ou un ensemble dépendant est une sous-partie de l’ensemble indépendant de la jonction des mo- tifs, et l’intersection entre les ensembles de groupes dépendants des motifs se décompose en une sous-partie de l’ensemble indépendant de la jonction et l’ensemble de groupes dé- pendant de la jonction : I(m1)∩ I(m2) = I1(m1∪ m2) (9.11) I(m1)∩ D(m2) = I2(m1∪ m2) (9.12) D(m1)∩ I(m2) = I3(m1∪ m2) (9.13) D(m1)∩ D(m2) = I4(m1∪ m2)∪ D(m1∪ m2) (9.14) D(m1∪ m2) = 4 [ i=1 Ii(m1∪ m2) (9.15)

Les ensembles indépendants de l’intersection des ensembles dépendants des deux motifs s’obtiennent en sélectionnant les lignes de la matrice de dépendance qui ne contiennent qu’un seul 1.

Figure 9.2 – Matrices I et D du niveau 0 de l’arbre de préfixe du graphe de la figure 9.1.

Etant donné que les lignes des matrices d’ensembles dépendants sont disjointes, l’inter- section d’une ligne de D(m1) est non vide avec au plus une ligne de D(m2). Les matrices

n’ont donc pas besoin d’être parcourues systématiquement complètement pour calculer l’intersection.

Nous avons vu que le support d’un motif pouvait être calculé simplement à partir de ses matrices de bits représentant les ensembles de groupes dépendants et les vecteurs de bits représentants les ensembles indépendants. De plus nous avons décrit comment obtenir ces ensembles pour un motif à partir de sous-motifs. L’algorithme ECLAT [Zaki, 2000c, Zaki et al., 1997] peut donc être appliqué aux graphes.

Cet algorithme consiste à calculer récursivement pour chaque nœud la base de données conditionnelle consistant dans le cas des bases de données linéaires à une matrice dont les lignes correspondent aux 1-extensions fréquentes, et les colonnes aux identifiants de transactions supportant le motif étendu. Dans notre cas, la base de données conditionnelle consiste donc en la matrice dont les vecteurs lignes sont les ensembles indépendants de chaque extension, et en une liste de matrices correspondant aux ensembles de groupes dépendants de chaque extension. Le calcul de la base de données conditionnelle d’une extension s’obtient donc par les quatre intersections des équations 9.11 à 9.15 entre les différents vecteurs lignes de la matrice d’indépendance et matrices dépendantes.