Rgles Associatives w Dfinition et introduction w Indicateurs

  • Slides: 52
Download presentation
Règles Associatives w Définition et introduction w Indicateurs de pertinence w Algorithme d'extraction w

Règles Associatives w Définition et introduction w Indicateurs de pertinence w Algorithme d'extraction w Algorithmes optimisés w Vers des règles plus robustes w Règles associatives multi-niveaux w Conclusion

1. Objectifs w Découvrir des règles liant les données ave un bon niveau de

1. Objectifs w Découvrir des règles liant les données ave un bon niveau de probabilité n n découverte de relations fines entre attributs (ou variables) généralisation des dépendances fonctionnelles l w Règles du style si P(tid, X) alors P(tid, Y) n w Num. SS Sexe notée: P(tid, X) P(tid, Y) encore X Y Différents types de règles n n origine "panier de la ménagère" étendues aux tables multiples et aux attributs continus

Attributs simples w Table normalisée ACHAT

Attributs simples w Table normalisée ACHAT

Règles mono-dimensionnelles w simple n Achat(tid, "vin") Achat(tid, "pain") w conjonctive n Achat(tid, "pain")

Règles mono-dimensionnelles w simple n Achat(tid, "vin") Achat(tid, "pain") w conjonctive n Achat(tid, "pain") & Achat(tid, "fromage") Achat(tid, "vin") w Règles booléennes (attribut discret) mono-dimensionnelles w notation simplifiée pour règles booléennes 1 -D n n X Y où X et Y sont des ensembles d'items disjoints Formellement I= {Items}, X I , Y I , X Y = {"vin"} {"pain"} {"pain", "fromage"} {"vin"}

Attributs multi-valués w Chaque ligne correspond à une ménagère ACHATS w Achats(tid, "pain") Achats(tid,

Attributs multi-valués w Chaque ligne correspond à une ménagère ACHATS w Achats(tid, "pain") Achats(tid, "crème") w en raccourci : {"pain"} {"crème"}

Règles multi-dimensionnelles w Mettent en jeu plusieurs attributs n n Achats(tid, age>50) Achats(tid, produit="pilule")

Règles multi-dimensionnelles w Mettent en jeu plusieurs attributs n n Achats(tid, age>50) Achats(tid, produit="pilule") en abrégé : age>50 produit="pillule" w Voir plusieurs relations n n Personne(tid, age>50) & Personne(tid, salaire>10000) Achats(tid, produits="luxe") il est possible de se ramener à 1 table par jointure l Personne Achats w Attributs continus (règles quantitatives) n n Age, Salaire … Possibilité de les discrétiser

2. Indicateurs de pertinence w Support : probabilité absolue P(X Y) n ||X Y||/

2. Indicateurs de pertinence w Support : probabilité absolue P(X Y) n ||X Y||/ ||BD|| = % de transactions vérifiant la règle w Confiance : probabilité conditionnelle P(Y/X) n ||X Y||/||X|| = % de transactions vérifiant l'implication w Règles intéressantes ? n n n par exemple : Support > 0. 1 et Confiance > 0. 7 comment extraire les règles intéressantes ? comment optimiser les calculs d'indicateurs sur des VLDB ?

Exemple 1 Règle & Support Confiance 2/4 2/3 1/4 1/2

Exemple 1 Règle & Support Confiance 2/4 2/3 1/4 1/2

Exemple 2 w { "crème" } { "pain" }

Exemple 2 w { "crème" } { "pain" }

Calculs d'indicateurs w Support = Prob. (crème et pain) w Confiance = Prob(crème et

Calculs d'indicateurs w Support = Prob. (crème et pain) w Confiance = Prob(crème et pain / crème)

Support et Confiance w La confiance se déduit du support n conf (X-->Y) =

Support et Confiance w La confiance se déduit du support n conf (X-->Y) = sup(XY) / sup(X) w Il est donc intéressant de calculer les supports d'abord w Un ensemble de produits de support plus grand que le support minimum (minsup) est dit fréquent.

Ensembles fréquents w Un ensemble de taille k est appelé un kensemble. w Tout

Ensembles fréquents w Un ensemble de taille k est appelé un kensemble. w Tout k-ensemble fréquent est composé de (k 1)-ensembles fréquents n n en effet, un ensemble ne peut être fréquent si certains sous-ensembles ne le sont pas tout sous-ensemble d'un ensemble fréquent est fréquent

3. Recherche des règles intéressantes w La détermination des ensembles fréquents permet de trouver

3. Recherche des règles intéressantes w La détermination des ensembles fréquents permet de trouver un sur-ensemble des règles intéressantes w La confiance permet de filtrer les règles lors de la génération w Nécessité de calculer les supports n de tous les produits l n 1 -ensembles fréquents de tous les ensembles susceptibles d’être fréquents l 2 -ensembles fréquents, 3 -ensembles fréquents, etc.

Algorithme Apriori [Agrawal 94] w Première passe : n n recherche des 1 -ensembles

Algorithme Apriori [Agrawal 94] w Première passe : n n recherche des 1 -ensembles fréquents un compteur par produits w L'algorithme génère un candidat de taille k à partir de deux candidats de taille k-1 différents par le dernier élément n procédure apriori-gen w Passe k : n n comptage des k-ensemble fréquents candidats sélection des bons candidats

Apriori – Fréquents itemsets L 1 = {frequent 1 -ensemble} ; for (k =

Apriori – Fréquents itemsets L 1 = {frequent 1 -ensemble} ; for (k = 2 ; Lk-1 ; k++) do { Ck = apriori-gen(Lk-1); // Generate new candidates foreach transactions t DB do { // Counting Ct = { subset(Ck, t) }; // get subsets of t candidates foreach c Ct do c. count++; } Lk = { c Ck |c. count >= minsup } ; // Filter candidates } Answer = {Lk} ;

Exemple Données en entrée Ck L= { {1}, {2}, {3}, {5}, {1 3}, {2

Exemple Données en entrée Ck L= { {1}, {2}, {3}, {5}, {1 3}, {2 5}, . . . } Lk Pour I = {1 3} génère 2 règles : R 1 : 1 3 (100%) R 2 : 3 1 (66%) R 1 plus solide que R 2

Apriori – Génération des règles // Entrée : Min. Conf, Lk ensembles d’items fréquents

Apriori – Génération des règles // Entrée : Min. Conf, Lk ensembles d’items fréquents // Sortie : ensemble R de règles d’associations Rules = ; for (k = 2 ; Lk-1 �; k++) do { Foreach subset S of Lk do { Conf (S Lk-S) = Sup(I)/Sup(S) If Conf >= Min. Conf then { rule = “ S ( Lk-S ) ” ; Rules = Rules {r} ; } } Answer = Rules ;

4. Comment évaluer efficacement ? w N passes sur la base n n une

4. Comment évaluer efficacement ? w N passes sur la base n n une pour 1, 2, …N-ensembles, N étant la taille du plus grand ensemble fréquent comptage des ensembles fréquents par transactions en parcourant la table w Trouver les produits d'une transaction peut nécessiter de la mémoire si table normalisée

Apriori-tid w Optimisation de Apriori n n n chaque transaction à un tid liste

Apriori-tid w Optimisation de Apriori n n n chaque transaction à un tid liste de tid par k-ensemble Calcul d'un k-ensemble l l Intersection des deux listes de tid des deux (k-1) ensembles sources La première passe permet d ’éliminer les produits non fréquents (moins de tid) w Inconvénient n n les listes sont lourdes et doivent être gardées en mémoire inefficace si les listes ne tiennent pas en mémoire

Algorithme A-Priori Partition[SON 95] w La base est divisée en N partitions n n

Algorithme A-Priori Partition[SON 95] w La base est divisée en N partitions n n chaque partition tient en mémoire les partitions peuvent être traitées en parallèle w Chaque partition est traitée indépendamment n découverte des ensembles fréquents pour chaque partition w Remarque n un ensemble fréquent doit l’être dans au moins une partition w Exploration de l ’union des ensembles fréquents sur la base n n comptage en une passe élimination des ensembles non fréquents w Avantage n n deux passes au plus parallélisable facilement

Algorithme de comptage dynamique w Train circulant par étape de M transactions n le

Algorithme de comptage dynamique w Train circulant par étape de M transactions n le train emporte des ensembles à compter l l n suspecté large : un ensemble toujours en cours de comptage qui excède le support ; suspecté petit : un ensemble toujours en cours de comptage qui est en dessous du support. A l’étape des passagers montent et descendent l l l confirmé large : un ensemble dont le comptage est terminé et qui excède le support ; confirmé petit : un ensemble dont le comptage est terminé et qui est en dessous du support ; nouveaux suspectés petits : sur-ensembles immédiats des suspectés larges ou confirmés larges w Comptage total en une passe et demi !

Dynamic Counting (DIC) [Brin 97] w Tous les 1 -ensembles sont marqués “ suspecté

Dynamic Counting (DIC) [Brin 97] w Tous les 1 -ensembles sont marqués “ suspecté petit ”. w M transactions sont lues. Les compteurs et supports sont calculés pour les ensembles suspectés petits ou larges. w Examiner les ensembles à l 'étape : si un suspecté petit à un support supérieur au seuil, le transformer en suspecté large ; générer tous ses sur-ensembles dont les sous-ensembles sont confirmés ou suspectés larges. w Si un ensemble en cours de comptage (suspecté petit ou large) a été compté pour toutes les transactions, le transformer en confirmé petit ou large selon le support obtenu. w Si on est en fin de table, revenir au début. w S’il reste au moins un ensembles suspecté petit ou large, aller à 2.

Comptage par Bitmap [GPW 98] w Utilisation d'index bitmaps multi-niveaux w Construction en une

Comptage par Bitmap [GPW 98] w Utilisation d'index bitmaps multi-niveaux w Construction en une passe w Comptage rapide en mémoire w Intersection, Union, Négation très efficaces

Les index bitmap Ménagère Produits Prix 1 {P 1, P 3, P 5} 2

Les index bitmap Ménagère Produits Prix 1 {P 1, P 3, P 5} 2 {P 2, P 3} 3 {P 4} 4 {P 2, P 5} 5 {P 3, P 4, P 6} 120 70 150 110 220 P 1 1 0 SELECT Ménagère WHERE 0 (P 2 OR P 3) AND Coût <200 0 P 2 P 3 P 4 P 5 P 6 0 1 0 1 1 0 0 0 -100 100 -200 200 -300 0 1 00 1 1 0 00 0 0 1 0 0 1 1 00 0 0 0 1 0

Bitmaps versus Listes w Plus compactes : N*P bits contre N*K 16 bits w

Bitmaps versus Listes w Plus compactes : N*P bits contre N*K 16 bits w Plus rapides : Opérations logiques en place de tri-fusion Liste de TIDs 3 5 7 Groupe 0: 0 1 2 3 4 5 6 7 8 0 0 1 0 1 0 0 Groupe 1: 0 1 2 3 4 5 6 7 8 0 0 0 0 0 Groupe 2: 0 1 2 3 4 5 6 7 8 0 0 1 0 0 0 12 9 0 9 1 35 42 10 11 12 13 14 15 0 1 0 0 10 11 12 13 14 15 0 0 0 Bitmap niveau 1 Bitmap niveau 2 1 0 1

L'algorithme 1 -BM w Génération d'un k-ensemble fréquent à partir de 2 (k-1)-ensembles fréquents

L'algorithme 1 -BM w Génération d'un k-ensemble fréquent à partir de 2 (k-1)-ensembles fréquents w Calcul du support par comptage du nombre de bits dans l'intersection des vecteurs associés de la bitmap

L'algorithme 2 -BM w La bitmap est indexée par une bitmap de niveau supérieur

L'algorithme 2 -BM w La bitmap est indexée par une bitmap de niveau supérieur w Les intersections s'effectuent au niveau de la 2 -BM n si 0 => pas nécessité d'accès à la 1 -BM w Les bitmaps peuvent être compressées n n horizontalement : codage des colonnes N col => Log 2 N bits verticalement : (position, longueur) des séquences de 1

Comparaisons w 2 -BM est beaucoup plus performant que les listes w Il gagne

Comparaisons w 2 -BM est beaucoup plus performant que les listes w Il gagne plus d'un ordre de grandeur pour des supports élevés (longues listes) w La taille mémoire nécessaire est faible car il n'est pas nécessaire de garder les 1 -BMs (l'intersection est peu coûteuse et peut être refaite quand nécessaire) w Il travaille en une seule passe si assez de mémoire 28

Evaluation analytique Execution Cost ro: Correlation between item A and item B Sa, Sb,

Evaluation analytique Execution Cost ro: Correlation between item A and item B Sa, Sb, Sab: Support of itemset A, B and AB Memory Consumption Freq: Number of frequent 1 -itemsets Sup: Minimum support 29

Résultats Experimentaux Le nombre de transactions varie de 100 K A 300 K minsup

Résultats Experimentaux Le nombre de transactions varie de 100 K A 300 K minsup = 0. 25% minsup = 0. 75%

Algorithme FP-Grows [Han 00] w Représentation des items fréquents par un index spécial FP-tree

Algorithme FP-Grows [Han 00] w Représentation des items fréquents par un index spécial FP-tree (Frequent Pattern Tree) w Construction du FP-tree n n Déterminer les produits fréquents (1 -ens. ) Trier par fréquence décroissante (table) Créer une racine vide Pour chaque transaction: l l l ajout des chemins de produits ordonnés par fréquence fusion des sous-chemins communs mise à jour des compteurs de fréquence des produits

Génération des ensembles fréquents w Exploitation récursive du FP-tree w Pour chaque item fréquent

Génération des ensembles fréquents w Exploitation récursive du FP-tree w Pour chaque item fréquent n Construire les chemins préfixes dans le FP-tree l n Fusionner les préfixes identiques et conserver les souschemins de support >= minsup l n conditional pattern base conditional FP-tree Générer les ensembles fréquents par combinaison des nœuds des chemins fréquents w Un peu complexe !!!

Perfomance w 2 passes sur la BD w Le FP-tree peut être volumineux w

Perfomance w 2 passes sur la BD w Le FP-tree peut être volumineux w Peut ne pas tenir en mémoire w Solution : n possibilité de combiner avec Apriori partition …

Bilan Règles Booléennes w De nombreux algorithmes qui passent à l'échelle w Les applications

Bilan Règles Booléennes w De nombreux algorithmes qui passent à l'échelle w Les applications restent difficiles n le monde réel est plus complexe l l n recherche de séquences recherche de séries temporelles interprétation difficile l trop de règles sorties, coefficients ? w Questions ? n Quelles valeurs pour minsup et minconf ?

5. Génération de règles plus robustes w Comment fixer support et confiance ? w

5. Génération de règles plus robustes w Comment fixer support et confiance ? w Comment éliminer les règles redondantes ? w Comment intégrer les taxonomies (généralisation) ?

Les mesures en question w Problème avec support et confiance n n Le support

Les mesures en question w Problème avec support et confiance n n Le support est symétrique : A B ou B A ? Whisky Viande a une confiance élevée l l l confiance(X Y) = P(Y/X) = P(XY)/P(X). ignore P(Y) élevée si P(X) est faible et P(Y) fort w La conviction [Brin 97] mieux adaptée ? n n n conviction(X Y) = P(X) P(¬Y)/P(X, ¬Y) mesure unique asymétrique X Y s ’écrit ¬(X et ¬Y) d ’où la conviction w Sinon, comment trouver les règles ? n Les ensembles fréquents sont insuffisants. . .

La redondance simple [AY 98] w R 1 : A=> BC w R 2

La redondance simple [AY 98] w R 1 : A=> BC w R 2 : AB=> C w R 2 est redondante / R 1: n n même support (ABC) conf (R 2) =sup(ABC)/sup(AB) conf(R 1) =sup(ABC)/sup(A) donc conf(R 2) > conf(R 1) w Plus généralement, pour un kensemble fréquent il suffit d'extérioriser la règle valide de condition minimale A AB Sup(AB) < Sup(A)

La redondance stricte [AY 98] w R 1 : A=> BCD w R 2

La redondance stricte [AY 98] w R 1 : A=> BCD w R 2 : AB => C w R 2 est redondante / R 1 : n n n conf(R 1) = sup(ABCD)/sup(A) conf(R 2) = sup(ABC)/sup(AB) sup(A) > sup(AB) sup(ABCD) < sup(ABC) donc conf(R 1) < conf(R 2) w Plus généralement, il suffit de considérer le plus grand k-ensemble fréquent et d'extérioriser la règle valide de condition maximale sup(A) > sup(AB) ABCD Sup(ABCD) < Sup(ABC)

Les k-ensembles fréquents w Constituent un semitreillis w sup(X) > sup(XY) ABC 0, 3%

Les k-ensembles fréquents w Constituent un semitreillis w sup(X) > sup(XY) ABC 0, 3% 0, 7% 0, 6% 0, 4% 0, 5% AB AC BC BD 1% 2% 2% A B C D 1%

Génération des règles revue w Il suffit de retrouver les plus grands ensembles de

Génération des règles revue w Il suffit de retrouver les plus grands ensembles de support > Min. Sup w puis d'en extraire les règles de confiance > Min. Conf ayant une condition maximale w S'il n'y en a pas on descend le semi-treillis des ensembles fréquents et on itère. w Possibilité de s'intéresser à un item particulier et d'explorer ses ancêtres sur demande : n ex : A=>{AB, AC}=>{ABC}

Des règles plus générales w Les règles multi-attributs : n n associent des valeurs

Des règles plus générales w Les règles multi-attributs : n n associent des valeurs d'attributs distincts telephone : Source = "New-York" => Cible ="Paris" (5%, 30%) w Les règles à attributs numériques [RS 98] : n n n règles de la forme A [x, y] => C ou A est un attribut numérique et C une condition : il faut trouver x et y. exemple Age [x, y] => Salaire > 300 KF (5%, 30%) trouver x? y?

Règles disjonctives et négatives w Disjonctive n Achat(X, "crème") | Achat(X, "fromage") Achat("pain") w

Règles disjonctives et négatives w Disjonctive n Achat(X, "crème") | Achat(X, "fromage") Achat("pain") w Négative n NOT Achat(X, "pain") Achat(X, "biscotte") w Expressions logiques n n &, | , NOT (avec parenthèses pour priorité) en condition possible aussi en tête de règles …

Les séquences temporelles w Les règles cycliques [ORS 98] n n n règles vérifiées

Les séquences temporelles w Les règles cycliques [ORS 98] n n n règles vérifiées périodiquement ex : tout les matins, café => sucre, gâteaux X=>Ycycle (l, o) signifie que X=>Y tous les l unités de temps en commençant au temps o. w Les patterns séquentiels n n n séquence d ’items ordonnés (pas ensemble) similaire aux règles associatives mais l'ordre importe exemple : l l achat de chaussures, puis pantalon, puis chemise consultation de pages web (page. A, page. C, page. F)

6. Règles multi-niveaux w Difficultés de trouver des associations robustes n n significatives au

6. Règles multi-niveaux w Difficultés de trouver des associations robustes n n significatives au niveau des données élémentaires intérêt de pouvoir grouper les données élémentaires en classes plus ou moins générales w Impacts sur les algorithmes n n trouver les règles à plusieurs niveaux supports de règles générales plus élevés

Généralisation w La généralisation permet de résumer les données n n n introduit une

Généralisation w La généralisation permet de résumer les données n n n introduit une hiérarchie de classe, du général au détaillé remplace les valeurs (trop) détaillées par des moins détaillées jusqu'au niveau souhaité augmente les comptages en vue d'induire des règles l exemple : plus de légumes que de carottes w Basée sur l’induction orientée attribut [Lu & Han 93] n utilise des hiérarchies de concepts

Hiérarchie de concepts w Arbre de généralisation / spécialisation de concepts w Objectifs :

Hiérarchie de concepts w Arbre de généralisation / spécialisation de concepts w Objectifs : n décrit le passage des concepts les plus spécifiques – correspondant aux valeurs de l’attribut dans la base de données – aux concepts plus généraux w Résultats : n Table généralisée ou règles (plus ou moins caractéristiques, discriminantes. . . ) sur les données

Exemple de hiérarchies Agriculture Fruits Légumes Bananes Oranges … P. de terre Lu Ma

Exemple de hiérarchies Agriculture Fruits Légumes Bananes Oranges … P. de terre Lu Ma . . . Monde Week-end Sa … Carottes ANY Semaine … Di Europe E. est E. ouest Afrique A. du nord A. du sud … Asie …

Exemple d’induction orientée attribut Induction / attribut

Exemple d’induction orientée attribut Induction / attribut

Algorithme optimisé (1) w Utilisation du même support à tous les niveaux n n

Algorithme optimisé (1) w Utilisation du même support à tous les niveaux n n n exemple: 7% pour Agriculture, Légume et Carotte inutile d'examiner un k-ensemble dont une classe supérieure ne satisfait pas le support exemple: ne pas miner Carotte si Légume ne satisfait pas le support

Algorithme optimisé (2) w Utilisation d'un support plus fins dans les sousclasses n n

Algorithme optimisé (2) w Utilisation d'un support plus fins dans les sousclasses n n n exemple: 7% pour Agriculture, 3% Légume et 1% Carotte plus réaliste car classes de plus en plus fines plusieurs stratégies de recherche possibles l l l ne pas miner une sous-classe d'une classe non fréquente => pertes possibles évaluer par niveau de manière indépendante => algorithme coûteux évaluer en profondeur avec des seuils …

Utilisation des datacubes w Les règles multi-dimensionnelles se traitent comme les règles classiques n

Utilisation des datacubes w Les règles multi-dimensionnelles se traitent comme les règles classiques n évaluation de prédicats à la place de l'existence d'items w Les datacubes sont un support intéressant pour la recherche de règles Ndimensionnelles n …

7. Conclusion w De nombreuses techniques de recherche de règles w La plupart passe

7. Conclusion w De nombreuses techniques de recherche de règles w La plupart passe difficilement à l'échelle n n limitées à quelques milliers d ’objets échantillonner puis valider sur le reste w Un bon outil doit proposer plusieurs techniques w Les problèmes : n n comment explorer de volumineuses bases de données ? trouver des structures d'indexation intéressantes ? maintenance incrémental des règles ? exploration de types de données complexes ?