• Aucun résultat trouvé

3.4.1

Contraintes

En parallèle aux algorithmes exhaustifs ont été développés des algorithmes qui extraient les règles d’association "sous contraintes", c’est-à-dire avec des contraintes supplémentaires à celles du support et de la confiance. Avec des contraintes, l’utilisateur peut spécifier aux algorithmes les caractéristiques des règles qu’il recherche (s’il y a plusieurs contraintes, elles sont associées par conjonction). Dans le cadre de l’étude du panier de la ménagère, les contraintes peuvent être par exemple :

1. les règles doivent conclure sur un produit dont le prix vaut au moins σ, 2. le prix total des produits en prémisse doit être inférieur au prix total des

produits en conclusion,

3. les règles ne doivent comporter que des produits textiles.

Ces exemples illustrent deux points importants. D’une part, les contraintes étu- diées dans la littérature portent souvent sur une grandeur numérique qui carac- térise les items (le prix des produits dans les exemples 1 et 2). D’autre part, les contraintes sont souvent exprimées à l’aide d’une hiérarchie de concepts dé- crivant les items ou une partie des items (dans l’exemple 3, une taxonomie des produits qui distingue entre autres les produits textiles).

Les algorithmes à contraintes utilisent les contraintes pour réduire l’espace de recherche à l’étape d’extraction des itemsets fréquents (l’étape de généra- tion des règles reste identique aux algorithmes exhaustifs). Pour cela, ils tra- duisent les conjonctions de contraintes exprimées sur les règles en conjonctions de contraintes exprimées sur les itemsets3

. Dans la suite, nous nous intéressons à l’étape d’extraction des itemsets fréquents, et considérons que les contraintes sont directement exprimées sur les itemsets.

Un algorithme à contraintes est optimisé pour une certaine classe de contraintes. Les deux principales classes de contraintes qui ont été étudiées sont les contraintes anti-monotones et monotones.

– Les contraintes anti-monotones sont définies par la propriété suivante : si un itemset vérifie une contrainte anti-monotone, alors tous ses sous- itemsets la vérifient aussi. Comme nous l’avons vu précédemment, la contrainte du seuil de support minimal est une contrainte anti-monotone. – Les contraintes monotones sont définies par la propriété suivante : si un itemset vérifie une contrainte monotone, alors tous ses sur-itemsets la véri-

3

Comme souligné dans [JB02], certaines contraintes sur les règles ne peuvent être traduites sur les itemsets (c’est le cas par exemple de la contrainte de confiance minimale). De telles contraintes ne sont donc pas utilisées pour réduire la taille de l’espace de recherche lors de l’extraction des itemsets fréquents. Les algorithmes les prennent en compte uniquement après la génération des règles, pour filtrer l’ensemble des règles obtenues.

3.4 - Algorithmes à contraintes 79 fient aussi. Une contrainte monotone est donc la négation d’une contrainte anti-monotone (et vice versa).

Des exemples de contraintes sont données dans le tableau 3.1.

Contraintes monotones Contraintes anti-monotones

i∈ S i6∈ S

S⊇ I S⊆ I

mini∈S(xi)≤ v mini∈S(xi)≥ v

maxi∈S(xi)≥ v maxi∈S(xi)≤ v

P

i∈S(xi)≥ v Pi∈S(xi)≤ v

(∀i ∈ S, xi≥ 0) (∀i ∈ S, xi ≥ 0)

longueur(S)≥ v longueur(S)≤ v S est un itemset corrélé4

support(S)≥ σsp

iest un item, I un ensemble d’items, v est une valeur numérique, chaque item i possède une caractéristique numérique xi.

Tab.3.1 – Quelques contraintes monotones et anti-monotones sur un itemset S

3.4.2

Algorithmes

Les algorithmes à contraintes sont pour la plupart des généralisations d’Apriori. Ils parcourent l’ensemble des itemsets en largeur d’abord (notons tout de même que FP-growth a été adapté en algorithme à contraintes [PH00] [LLN02]). En fonction des contraintes utilisées, l’élagage engendré sur l’espace de recherche n’est pas le même. Les deux paragraphes ci-dessous expliquent comment les contraintes anti-monotones et monotones sont exploitées dans les algorithmes.

– Puisque Apriori est conçu pour tirer profit d’une contrainte anti- monotone, les contraintes anti-monotones peuvent être exploitées effica- cement dans une structure d’algorithme issue d’Apriori. Une contrainte anti-monotone peut être prises en compte :

– soit après la génération des itemsets candidats (entre les lignes 7 et 8 dans l’algorithme 3.1 page 76), si le test de la contrainte sur les itemsets ne nécessite pas de lire les données ;

– soit après le passage sur les données (à la place de la ligne 13 dans l’algorithme 3.1 page 76), si le test de la contrainte sur les itemsets nécessite d’avoir lu les données (comme la contrainte de support minimal, qui est testée ligne 13).

– Les contraintes monotones sont exploitées lors de la génération des

4

Un itemset est dit "corrélé" au seuil α si P(χ2

p > χ20) ≤ 1 − α, où χ 2

0 est calculé sur la

table de contingence croisant les variables qui apparaissent dans l’itemset (non pas les items binaires mais les variables d’origine qui, elles, peuvent être multimodales). Bien qu’il s’agisse d’ensembles non ordonnés d’items et non de liaisons orientées entre items, Brin et al. nomment ces itemsets "correlation rules" [BMS97] ou "dependence rules" [SBM98].

candidats (procédure générerItemsetsCandidats() à la ligne 6 de l’algorithme 3.1), mais elles sont moins évidentes à utiliser. Pour que les performances soient bonnes, il faut en effet que la contrainte permette d’énumérer l’ensemble des itemsets qui la vérifient uniquement à partir de la liste des items, sans avoir à consulter les individus dans les don- nées. Nous nommons fonction génératrice (member generating function dans [NLHP98]) une procédure d’énumération adéquate. Par exemple, les contraintes syntaxiques5(définies uniquement à l’aide des items) disposent

toutes d’une fonction génératrice (comme une procédure pour énumérer la liste des itemsets qui possèdent un item particulier), indépendamment du fait qu’elles soient monotones ou pas. Le problème est que les contraintes monotones ne disposent pas toutes d’une fonction génératrice. De plus, comme indiqué dans [JB02], une contrainte monotone peut amoindrir l’efficacité de l’élagage réalisé par les contraintes anti-monotones (voir exemple ci-dessous). Dans cette situation, l’introduction de la contrainte monotone dans le processus d’extraction des itemsets fréquents contribue à augmenter la taille de l’espace de recherche au lieu de la diminuer. Une approche qui peut même s’avérer plus efficace consiste à prendre en compte la contrainte en post-traitement, c’est-à-dire après l’extraction des itemsets fréquents, pour filtrer les résultats obtenus (degré zéro de l’extraction sous contraintes).

Exemple. Considérons des données décrites par un ensemble d’items I = {i1, i2, i3}. La contrainte anti-monotone C1 est une contrainte de

support minimal, et la contrainte monotone C2 est une contrainte qui

exige que les itemsets contiennent l’item i1. A la fin de la première

itération de l’algorithme (niveau k = 2), l’ensemble des itemsets vérifiant les deux contraintes est F2 = {i1∧ i2 , i1∧ i3}. L’itemset i2∧ i3 n’est

pas dans F2 puisque, comme il ne vérifie pas la contrainte C2, il n’a pas

été généré comme itemset candidat. A l’itération suivante (niveau k = 3), l’ensemble des itemsets candidats C3 = {i1∧ i2∧ i3} est généré, puis il

doit être élagué. Supposons que i2∧ i3ne vérifie pas C1. Cette information

est inconnue par l’algorithme puisque cet itemset n’a pas été généré comme candidat au niveau inférieur. Il est donc impossible de prévoir que i1∧ i2∧ i3 ne vérifie pas non plus C1. Dans le doute, i1∧ i2∧ i3 est

conservé dans C3 et sera compté dans les données. Le problème réside

donc dans le fait que certains itemsets peuvent être écartés par une contrainte monotone C2 alors qu’ils auraient permis à une contrainte

anti-monotone C1d’élaguer des pans entiers de l’espace de recherche. ¤

Ces principes généraux pour l’exploitation des contraintes se retrouvent dans différents travaux. L’algorithme CAP proposé dans [NLHP98] est opti- misé pour des conjonctions de contraintes anti-monotones et de contraintes suc- cintes (une classe de contraintes qui ont l’avantage de posséder une fonction génératrice). Dans [JB02] est présenté un algorithme générique qui exploite des conjonctions de contraintes anti-monotones et monotones. Plusieurs algorithmes sont également proposés dans [SVA97] pour des conjonctions ou disjonctions de contraintes syntaxiques qui imposent (contrainte monotone) ou interdisent (contrainte anti-monotone) la présence d’un item dans les itemsets. Les algo-

5

3.5 - Quelle approche choisir ? 81