Rgles dassociation 1 Recherche des Associations Rgles dassociation

  • Slides: 60
Download presentation
Règles d’association 1

Règles d’association 1

Recherche des Associations Règles d’association : n Trouver les motifs fréquents, associations, corrélations, ou

Recherche des Associations Règles d’association : n Trouver les motifs fréquents, associations, corrélations, ou structures causales a partir d’un entrepôt de données (BD, fichier, …) n Exemples. n Forme: “Body ® Head [support, confiance]”. n achète(x, “cacahuètes”) ® achète(x, “bière”) [0. 5%, 60%] n Etant donnés: (1) une base de transactions, (2) chaque transaction est une liste d’items n Trouver: toutes les règles qui expriment une corrélation entre la présence d’un item avec la présence d’un ensemble d’items n Ex. , 98% des personnes qui achètent des cacahuètes n achètent de la bière 2

Mesures: Support et Confiance Trouver les règles X & Y Z avec un Clients

Mesures: Support et Confiance Trouver les règles X & Y Z avec un Clients achetant les deux Clients achetant chips support et une confiance > s et >c n support, s, probabilité qu’une n Clients achetant bière transaction contienne {X Y Z} confiance, c, probabilité conditionnelle qu’une transaction qui contient {X Y} contienne aussi Z Soit support minimum 50%, et confiance minimum 50%, A C (50%, 66. 6%) C A (50%, 100%) 3

Découverte des règles d’associations Booléennes vs. quantitative (Basé sur les types des valeurs considérées)

Découverte des règles d’associations Booléennes vs. quantitative (Basé sur les types des valeurs considérées) n achète(x, “SQLServer”) ^ achète(x, “DMBook”)® achète(x, “DBMiner”) [0. 2%, 60%] n age(x, “ 30. . 39”) ^ revenu(x, “ 42. . 48 K”) ® achète(x, “PC”) [1%, 75%] n Associations à une dimension vs. plusieurs dimensions (voir ci_dessus) n Analyse sur un ou plusieurs niveaux n Quelles marques de bières sont associées à quelles marques de cacahuètes? n Extensions n Analyse de corrélation, causalité n Association n’implique pas corrélation ou causalité n N’extraire que les itemsets clos n Extraction avec contraintes n Ex. , on ne veut que les règles portant sur pas plus de 4 produits n 4

Extraction de règles: Exemple Min. support 50% Min. confiance 50% Pour A C: support

Extraction de règles: Exemple Min. support 50% Min. confiance 50% Pour A C: support = support({A C}) = 50% confiance = support({A C})/support({A}) = 66. 6% Le principe d’Apriori: Chaque sous ensemble d’un ensemble fréquent est fréquent 5

Extraction des itemsets fréquents n Trouver les itemsets fréquents : ceux qui ont un

Extraction des itemsets fréquents n Trouver les itemsets fréquents : ceux qui ont un support supérieur au min_support n n n Un sous ensemble d’un ensemble fréquent est fréquent n i. e. , si {AB} est fréquent alors {A} et{B} le sont n Si {A} n’est pas fréquent alors {AB} ne peut pas l’être Itérativement, trouver les itemsets fréquents dont la cardinalise varie de 1 a k (k-itemset) Utiliser les itemsets fréquents pour générer les règles d’association 6

L’algorithme Apriori n Join Step: Ck est généré en joignant Lk-1 avec lui même

L’algorithme Apriori n Join Step: Ck est généré en joignant Lk-1 avec lui même Prune Step: Chaque (k-1)-itemset qui n’est pas fréquent ne n Pseudo-code: n pas être un sous ensemble d’un k-itemset fréquent Ck: Itemset candidat de taille k Lk : itemset fréquent de taille k L 1 = {fréquent items}; for (k = 1; Lk != ; k++) do begin Ck+1 = candidats générés à partir de Lk for each transaction t dans la base do Lk+1 incrémenter le nombre de candidats dans Ck+1 qui sont dans t = candidats dans Ck+1 avec un support_min end return k Lk; 7

Apriori — Exemple Avec support=2 base D L 1 C 1 Scan D C

Apriori — Exemple Avec support=2 base D L 1 C 1 Scan D C 2 Scan D L 2 C 3 Scan D L 3 8

Génération des Candidats n Supposons que les items de Lk-1 sont triés n Etape

Génération des Candidats n Supposons que les items de Lk-1 sont triés n Etape 1: self-join de Lk-1 Insert into Ck select p. item 1, p. item 2, …, p. itemk-1, q. itemk-1 from Lk-1 p, Lk-1 q where p. item 1=q. item 1, …, p. itemk-2=q. itemk-2, p. itemk-1 < q. itemk-1 n Etape 2: pruning (elagage) Pour chaque itemset c dans Ck Faire Pour chaque (k-1)-sous-ensemble s de c Faire Si (s n’est pas dans Lk-1) Alors supprimer c de Ck 9

Exemple de Génération de Candidats n L 3={abc, abd, ace, bcd} n Self-join: L

Exemple de Génération de Candidats n L 3={abc, abd, ace, bcd} n Self-join: L 3*L 3 n n abcd à partir de abc et abd n acde à partir acd et ace Pruning: n n acde est supprimé car ade n’est pas dans L 3 C 4={abcd} 10

Exemple: Règles d’association n Supposons que les données soient dans une BD relationnelle avec

Exemple: Règles d’association n Supposons que les données soient dans une BD relationnelle avec la table Transaction(Tid, Item). On a 108 tuples concernant 107 transactions et l’on a 105 items différents. En moyenne chaque transaction concerne 10 items. La requête suivante sélectionne les paires d’items fréquents SELECT t 1. item, t 2. item FROM transaction t 1, transaction t 2 WHERE t 1. Tid= t 2. Tid AND t 1. item < t 2. item GROUP BY t 1. item, t 2. item HAVING COUNT(*) >= seuil*taille de la base n Pour chaque transaction on a C(10, 2)=45 paires à regarder ainsi la jointure a 45*107 tuples 11

Exemple: Règles d’association n Remarque: si {item_1} n’est pas fréquent alors certainement la paire

Exemple: Règles d’association n Remarque: si {item_1} n’est pas fréquent alors certainement la paire {item_1, item_i} ne l’est pas. Considérons la requête SELECT * FROM transaction GROUP BY item HAVING COUNT(*) >= seuil*taille de la base si seuil = 0, 01 alors au plus 1000 item seront dans le résultat. Raison: il y a 108 occurrences d’items. Pour qu’un item soit fréquent il faut qu’il apparaisse 0, 01 * 107 =105 fois. n Pour cher les paires fréquentes, utiliser le résultat de la requête précédente plutôt que la table initiale 12

Améliorations d’Apriori n Hash-based itemset counting: Une technique qui permet d’accélérer la phase de

Améliorations d’Apriori n Hash-based itemset counting: Une technique qui permet d’accélérer la phase de calcul des 2_itemsets fréquents. n Transaction reduction: Une transaction qui ne contient aucun kitemset fréquent peut être supprimée pour ne pas être utilisée pour les prochaines phases n Partitioning: Chaque itemset potentiellement fréquent dans la base D est « forcément » fréquent dans au moins une des partitions n Sampling: Exploration d’un sous-ensemble de la base. On considère une valeur du support inférieur. Pbme: Trouver une méthode pour vérifier la complétude n Dynamic itemset counting: ajouter de nouveaux itemsets candidats seulement si tous leurs sous_ensembles sont fréquents 13

Problèmes d’Apriori n Le principe de l’algorithme: n n n Utiliser les (k –

Problèmes d’Apriori n Le principe de l’algorithme: n n n Utiliser les (k – 1)-itemsets fréquents pour générer les k-itemsets candidats Scanner la base pour tester le support des candidats Là où l’algo pèche : génération des candidats n Beaucoup: n n n 104 1 -itemsets fréquent générant 107 2 -itemsets candidats Pour trouver les 100 -itemsets on doit générer 2100 1030 candidats. Plusieurs scans de la base: n On doit faire (n +1 ) scans, pour trouver les itemsets fréquents n 14

Variante de l’algo: Hachage • Quand la base est scannée pour la génération de

Variante de l’algo: Hachage • Quand la base est scannée pour la génération de L 1, on peut générer les 2 -itemsets de chaque transaction. • Appliquer une fonction de hachage à ces 2 -items sets pour les stocker dans le bon bloc. • En les stockant, incrémenter le count du bloc correspondant. • Un 2 -itemset dont le COUNT de son bloc est < min-sup n’est certainement pas fréquent • Remarque: Un 2 -itemset dont COUNT de son bloc est > min-sup n’est pas nécessairement fréquent • Méthode permettant de réduire les candidats 15

Variante de l’algo: Hachage Base D TID T 100 T 200 T 300 T

Variante de l’algo: Hachage Base D TID T 100 T 200 T 300 T 400 T 500 T 600 T 700 T 800 T 900 I 2, I 4 I 2, I 3 Liste I 1, items I 2, I 5 I 1, I 2, I 1, I 3 I 4 I 2, I 3 I 1, I 2, I 3, I 5 I 3 Table de hachage, h(I, J)=(num(I)*10 + num(J)) mod 7 Adresse Count Contenu 0 2 1 2 2 4 3 2 4 2 5 4 6 4 {I 1, I 4} {I 3, I 5} {I 1, I 5} {I 2, I 3} {I 2, I 4} {I 2, I 5} {I 1, I 2} {I 1, I 3} 16

Exploration sans génération de candidats n n Compresser la base, Frequent-Pattern tree (FP-tree) n

Exploration sans génération de candidats n n Compresser la base, Frequent-Pattern tree (FP-tree) n Une représentation condensée n Evite les scans coûteux de la base Développer une méthode efficace pour l’exploration basée sur une approche n n diviser-et-régner: décompose le problèmes en sousproblèmes Pas de génération de candidats : test de la “sousbase” seulement ! 17

FP-Trees: Exemple TID T 100 T 200 T 300 I 2, I 4 I

FP-Trees: Exemple TID T 100 T 200 T 300 I 2, I 4 I 1, I 3 Liste I 1, items I 2, I 5 T 400 T 500 T 600 T 700 T 800 T 900 I 1, I 2, I 4 I 2, I 3 I 1, I 2, I 3, I 5 I 1, I 2, I 3 Supposons que min-support=2. On construit la liste « triée » : L = [I 2: 7, I 1: 6, I 3: 6, I 4: 2, I 5: 2] On parcourt une 2ème fois la base. On lit les transactions selon l’ordre des items dans L, i. e pour T 100 on a I 2, I 1, I 5. La lecture de T 100 donne Null I 2: 1 I 1: 1 I 5: 1 7 6 6 I 2 I 1 I 3 2 I 4 2 I 5 18

FP-Trees: exemple TID T 100 T 200 T 300 I 2, I 4 I

FP-Trees: exemple TID T 100 T 200 T 300 I 2, I 4 I 2, I 3 Liste I 1, items I 2, I 5 T 400 T 500 T 600 T 700 T 800 T 900 I 1, I 2, I 1, I 3 I 4 I 2, I 3 I 1, I 2, I 3, I 5 I 3 La lecture de T 200 va a priori générer une branche qui relie la racine a I 2 et I 2 à I 4. Or cette branche partage un préfixe (i. e I 2) avec une branche qui existe déjà. L’arbre obtenu après lecture de T 200 sera Null I 2: 2 I 4: 1 I 1: 1 I 5: 1 7 6 6 I 2 I 1 I 3 2 I 4 2 I 5 19

FP-Trees: exemple TID T 100 T 200 T 300 T 400 T 500 T

FP-Trees: exemple TID T 100 T 200 T 300 T 400 T 500 T 600 T 700 T 800 T 900 I 2, I 4 I 1, I 3 I 1, I 2, I 3 I 1, I 2, Liste I 1, I 4 I 3, I 5 I 3 items I 2, I 5 En lisant T 300, l’ordre selon L est I 1, I 3. Ceci nous amène à ajouter une branche Null I 1 I 3. Noter qu’elle n’a pas de préfixe commun avec ce qui existe déjà. On obtient I 3: 1 Null I 1: 1 I 2: 2 I 4: 1 I 1: 1 I 5: 1 7 6 6 I 2 I 1 I 3 2 I 4 2 I 5 20

FP-Trees: exemple TID T 100 T 200 T 300 T 400 T 500 T

FP-Trees: exemple TID T 100 T 200 T 300 T 400 T 500 T 600 T 700 T 800 T 900 I 2, I 4 I 1, I 3 I 1, I 2, I 3 I 1, I 2, Liste I 1, I 4 I 3, I 5 I 3 items I 2, I 5 Finalement, le FP_tree obtenu est Null I 2: 7 I 1: 2 I 3: 2 I 4: 1 I 3: 2 I 1: 4 I 5: 1 I 3: 2 I 5: 1 7 6 6 I 2 I 1 I 3 2 I 4 2 I 5 21

Phase de l’exploration n n Considérons I 5. Il apparaît dans 2 branches. I

Phase de l’exploration n n Considérons I 5. Il apparaît dans 2 branches. I 2 I 1 I 5: 1 et I 2 I 1 I 3 I 5: 1 Ainsi, pour le suffixe I 5, on a 2 chemins préfixes: <I 2, I 1: 1> et <I 2, I 1, I 3: 1>. Ils forment sa «table conditionnelle» Le «FP-tree conditionnel» de I 5 contient une seule branche I 2 I 1. I 3 n’en fait pas partie car son support est 1 qui est <2 Ce chemin unique va générer toutes les combinaisons de I 5 avec I 1 et I 2, i. e {I 1, I 5}: 2, {I 2, I 5}: 2, {I 1, I 2, I 5}: 2 22

Phase de l’exploration n Considérons I 4. Sa table conditionnelle est formée de <I

Phase de l’exploration n Considérons I 4. Sa table conditionnelle est formée de <I 2, I 1: 1> et <I 2: 1>. Le FP-Tree conditionnel ne contient donc qu’un seul nœud I 2. Nous obtenons donc un itemset fréquent qui est {I 2, I 4}: 2 23

Phase de l’exploration Item Base conditionnelle FP-tree conditionnel Itemsets générés I 5 <I 2,

Phase de l’exploration Item Base conditionnelle FP-tree conditionnel Itemsets générés I 5 <I 2, I 1>: 1, <I 2, I 1, I 3>: 1 I 2: 2 I 1: 2 {I 2, I 5}: 2 {I 1, I 5}: 2 {I 2, I 1, I 5}: 2 I 4 <I 2, I 1>: 1, <I 2>: 1 I 2: 2 {I 2, I 4}: 2 I 3 <I 2, I 1>: 2 , <I 2>: 2, <I 1>: 2 I 2: 4 I 1: 2 {I 2, I 3}: 4 {I 1, I 3}: 4 {I 2, I 1, I 3}: 2 I 1 <I 2>: 4 {I 2, I 1}: 4 I 2: 4 Ce n’est pas la peine de regarder I 2 car ça va donner les combinaisons avec les autres items qui ont déjà été considérés 24

Exploration avec les FP-tree n n Idée général (divide-and-conquer) n Récursivement, augmenter le chemin

Exploration avec les FP-tree n n Idée général (divide-and-conquer) n Récursivement, augmenter le chemin d’un itemset fréquent en utilisant le FP-tree Méthode n Pour chaque item, construire sa conditional patternbase, ensuite son conditional FP-tree n Répéter le processus sur chaque FP-Tree conditionnel nouvellement créé n Jusqu’à ce que le FP-Tree résultant est vide, ou bien qu’il contient seulement un chemin (un chemin unique va générer toutes les combinaisons de ses sous-chemins chacun représentant un itemset fréquent) 25

Propriétés des FP-tree n Propriétés des Nœuds et liens n n Pour chaque item

Propriétés des FP-tree n Propriétés des Nœuds et liens n n Pour chaque item fréquent ai , tous les itemsets fréquents qui contiennent ai peuvent être obtenus en suivant les liens partants du nœud ai en commençant par la table entête Propriété des chemins de préfixe n Pour calculer les itemsets fréquents pour un nœud ai sur une chemin P, seulement le sous-chemin préfixe de ai dans P doit être cumulé. Sa fréquence doit avoir la même valeur que celle du nœud ai. 26

Algorithme de l’exploration Procédure FP_mine(Tree, nœud) Si Tree contient un chemin unique Alors pour

Algorithme de l’exploration Procédure FP_mine(Tree, nœud) Si Tree contient un chemin unique Alors pour chaque combinaison B des nœuds de P faire générere l’itemset B nœud avec support=min support des nœuds de B Sinon Pour chaque ai dans la table entête faire générer B= ai nœud avec support=support(ai) construire la base conditionnelle de B construire le FP-Tree BF conditionnel de B Si BF alors Call FP_mine(BF, B) L’exploration commence par appeler FP-mine(FP-Tree, Null) 27

FP-Tree vs. Apriori Data set T 25 I 20 D 10 K 28

FP-Tree vs. Apriori Data set T 25 I 20 D 10 K 28

Règles d’association multi-niveaux Aliment n n n Les items forment des Pain Produit_Laitier hiérarchies.

Règles d’association multi-niveaux Aliment n n n Les items forment des Pain Produit_Laitier hiérarchies. Les items au niveau yaourt fromage seigle farine inférieur ont des supports inférieurs Brie fondu Les bases de transactions peuvent prendre en compte les niveaux 29

Exploration multi-niveaux n Une approche progressive top_down: n D’abord trouver les règles fortes sur

Exploration multi-niveaux n Une approche progressive top_down: n D’abord trouver les règles fortes sur les niveaux supérieurs: Produit_Laitier Pain [20%, 60%]. n puis, passer aux niveaux inférieurs pour des règles plus faibles : yaourt pain au seigle [6%, 50%]. n Variations: n Croisement de niveaux Produit_Laitier ® pain au seigle 30

Association-multiniveaux: Support uniforme vs. support réduit n Support uniforme : le même support pour

Association-multiniveaux: Support uniforme vs. support réduit n Support uniforme : le même support pour chaque niveau n + Pas besoin de regarder les itemsets dont les ancêtres ne sont pas fréquents. Ex: « Pain » pas fréquent donc Pain au seigle non plus n n – Les niveaux inférieurs n’apparaissent moins fréquemment donc possibilité de rater quelques règles Support réduit : on réduit le support aux niveaux inférieurs n 4 stratégies de recherche : n Chaque niveau a un min-support indépendamment des autres n Level-cross filtering by k-itemset n Level-cross filtering by single item n Controlled level-cross filtering by single item 31

Support uniforme Exploration multi-niveaux avec support uniforme niveau 1 min_sup = 5% niveau 2

Support uniforme Exploration multi-niveaux avec support uniforme niveau 1 min_sup = 5% niveau 2 min_sup = 5% Produit_laitier [support = 10%] yaourt fromage [support = 6%] [support = 4%] 32

Support réduit Exploration multi-niveaux avec support réduit niveau 1 min_sup = 5% Niveau 2

Support réduit Exploration multi-niveaux avec support réduit niveau 1 min_sup = 5% Niveau 2 min_sup = 3% Produit_laitier [support = 10%] yaourt fromage [support = 6%] [support = 4%] 33

Associations multi-niveaux: Elimination des règles redondantes n n Certaines règles peuvent être redondantes à

Associations multi-niveaux: Elimination des règles redondantes n n Certaines règles peuvent être redondantes à cause des relations de “parenté” entre items Exemple n Produit_laitier pain_farine [support = 8%, confiance = 70%] fromage pain_farine [support = 2%, confidence = 72%] On dit que la première règle est un ancêtre de la seconde Une règle est redondante si son support est très proche du support prévu, en se basant de sa règle ancêtre n n n 34

Approche progressive n Approche top-down: 1. Explorer les items fréquents du niveau supérieur :

Approche progressive n Approche top-down: 1. Explorer les items fréquents du niveau supérieur : Produit_laitier(15%), Pain (10%) 1. Puis passer au niveau inférieur yaourt (5%), pain_farine (4%) n n Si support uniforme alors on peut éliminer les items dont l’ancêtre n’est pas fréquent Si support réduit alors examiner les items dont l’ancêtre est assez fréquent 35

Associations Multi-Dimensionnelles: Concepts n Règles uni-dimensionnelles: achète(X, “lait”) achète(X, “pain”) n Règles multi-dimensionnelles: 2

Associations Multi-Dimensionnelles: Concepts n Règles uni-dimensionnelles: achète(X, “lait”) achète(X, “pain”) n Règles multi-dimensionnelles: 2 dimensions ou prédicats n Règles inter-dimensions (pas de prédicats répétés) age(X, ” 19 -25”) occupation(X, “étudiant”) achète(X, “Coca”) n Règles hybrides (prédicats répétés) age(X, ” 19 -25”) achète(X, “popcorn”) achète(X, “Coca”) n n Attributs de catégorie n Un nombre fini de valeurs, pas d’ordre entre les valeurs Attributs quantitatifs n numériques, il existe un ordre (implicite) entre les valeurs 36

Techniques pour Associations MD Chercher les ensembles à k-prédicats fréquents: n Exemple: {age, occupation,

Techniques pour Associations MD Chercher les ensembles à k-prédicats fréquents: n Exemple: {age, occupation, achète} est un ensemble à 3 prédicats. n Le seul attribut quantitatif est age. Les techniques peuvent être distinguées sur le mode de traitement de l’attribut age. 1. Discrétisation statique n Remplacer les valeurs d’age par des intervalles 0. . 20, 21. . 40, …Chaque intervalle devient donc une catégorie. 2. Règles quantitatives n Les attributs quantitatifs sont dynamiquement discrétisés par des “bins” en se basant sur la distribution des données. 3. Règles basées sur une notion de Distance n C’est un processus de discrétisation dynamique basé sur la distance entre les données n 37

1) Discrétisation statique n n n Discrétiser avant d’explorer en utilisant des hiérarchies de

1) Discrétisation statique n n n Discrétiser avant d’explorer en utilisant des hiérarchies de concepts. Les valeurs numériques sont remplacées par des intervalles Dans une base relationnelle, trouver les ensembles à K prédicats fréquents demande k ou k+1 scans n Data-cube peut être mieux utilisé n pour l’exploration n Les cellules d’un cuboïdes à n-dimensions correspond à () (age, revenu) (achète) (age, achète) (revenu, achète) un ensemble de prédicats (age, revenu, achète) 38

2) Règles quantitatives n n Les attributs numériques sont dynamiquement discrétisés de sorte à

2) Règles quantitatives n n Les attributs numériques sont dynamiquement discrétisés de sorte à maximiser la confiance ou la compacité des règles sont maximisées Considérons le cas des règles: Aquan 1 Aquan 2 Acat 1 Regrouper les règles “adjacentes” pour former des règles générales n en utilisant une grille 2 -D n Exemple: age(X, ” 34. . 35”) revenu(X, ” 31 K. . 50 K”) achète(X, ”TV grand écran”) 39

3) Règles basées sur la notion de distance n n C’est une sorte de

3) Règles basées sur la notion de distance n n C’est une sorte de regroupement. Ex: la distance entre éléments d’un groupe inférieure à 4 La discrétisation est ici basée sur la proximité des éléments d’un intervalle en tenant compte des données réelles 40

Mesures d’intérêt n Mesures objectives: ¶ support et · n confiance Mesures subjectives n

Mesures d’intérêt n Mesures objectives: ¶ support et · n confiance Mesures subjectives n Une règle est intéressante ¶ Si elle est inattendue et/ou · actionnable (l’utilisateur peut faire quelque chose avec) 43

Critiques des notions de Support et de confiance n Exemple 1: n Parmi 5000

Critiques des notions de Support et de confiance n Exemple 1: n Parmi 5000 étudiants n 3000 jouent au basket n 3750 prennent des céréales n 2000 jouent du basket et prennent des céréales n Jouer au basket prendre des céréales[40%, 66. 7%] n’est pas informative car il y a 75% d’étudiants qui prennent des céréales ce qui est plus que 66. 7%. n jouer au basket pas de céréales[20%, 33. 3%] est plus pertinente même avec un support et une confiance inférieurs 44

Critiques des notions de Support et de confiance n n n Exemple 2: n

Critiques des notions de Support et de confiance n n n Exemple 2: n X et Y: positivement corrélés, n X et Z, négativement corrélés n Les support et confiance de X=>Z dominent Nous avons besoin d’une mesure de corrélation P(B|A)/P(B) est aussi appelé le lift de A => B 45

Autres mesures n Intérêt (corrélation, lift) n Prendre en compte P(A) et P(B) n

Autres mesures n Intérêt (corrélation, lift) n Prendre en compte P(A) et P(B) n P(A & B)=P(B)*P(A), si A et B sont des événements indépendants n A et B négativement corrélés, si corr(A, B)<1. 46

Exploration avec contraintes n n Exploration interactive où l’utilisateur pose des conditions en plus

Exploration avec contraintes n n Exploration interactive où l’utilisateur pose des conditions en plus des minima de support et confiance Quels types de conditions? n Type de connaissance recherchée: classification, association, etc. n Contraintes sur les données: n n Contraintes sur les dimensions: n n Trouver les paires de produits vendus à Bordeaux en Décembre 98 En rapport à région, prix, marque, catégorie client Contraintes sur les règles n Nombres de prédicats dans le corps 47

Exploration avec contraintes n n Base: (1) trans (TID, Itemset ), (2) item. Info

Exploration avec contraintes n n Base: (1) trans (TID, Itemset ), (2) item. Info (Item, Type, Prix) Une requête d’association contrainte (RAC) est une expression de la forme {(S 1, S 2 )|C }, n où C est un ensemble de contraintes sur S 1 et S 2 contrainte de fréquence n incluant la Une classification de contraintes (à une variable) : n n Contraintes de classe : S A. ex. S Item Contrainte de domaine : n n S v, { , , , }. ex. S. Prix < 100 V S, est ou . ex. Produit_laitier S. Type V S, ou S V, { , , } n ex. {snacks, sodas } S. Type (plusieurs types pour 1 item) Contraintes d’agrégation : agg(S) v, où agg {min, max, sum, count, avg}, et { , , , }. n ex. count(S 1. Type) 1 , avg(S 2. Prix) 100 48

Optimisation en présence de contraintes n n n Soit une RAC = { (S

Optimisation en présence de contraintes n n n Soit une RAC = { (S 1, S 2) | C }, l’algorithme doit être: n correcte: Il ne trouve que les itemsets fréquents qui satisfont C n complet: Il trouve tous les itemsets fréquents qui satisfont C Solution naïve: n Appliquer Apriori pour trouver les itemsets fréquents puis éliminer les itemsets ne satisfaisant pas C Autre approche : n Analyse des propriétés des contraintes pour les intégrer dans Apriori lors de la phase de l’exploration des itemsets fréquents. 49

Contraintes Anti-monotones et Monotone n Une contrainte Ca est anti-monotone ssi pour chaque itemset

Contraintes Anti-monotones et Monotone n Une contrainte Ca est anti-monotone ssi pour chaque itemset S, si S ne satisfait pas Ca, alors aucun de ses sur-ensembles ne satisfait Ca n Cm est monotone ssi pour chaque S, si S satisfait Cm, alors chacun de ses sur-ensembles satisfait Cm 50

Propriétés des contraintes anti-monotones n Anti-monotonicité: Si S viole la contrainte alors chaque surensemble

Propriétés des contraintes anti-monotones n Anti-monotonicité: Si S viole la contrainte alors chaque surensemble de S viole aussi la contrainte n n Exemples: n sum(S. Prix) v est anti-monotone n sum(S. Prix) v n’est pas anti-monotone n sum(S. Prix) = v est partiellement anti-monotone Application: n Pousser la condition “sum(S. prix) 1000” lors des itérations du calcul des ensembles fréquents 51

Contrainte Succincte n n n Un ensemble d’items Is est un ensemble succinct, succinct

Contrainte Succincte n n n Un ensemble d’items Is est un ensemble succinct, succinct s’il peut être exprimé par p(I) où est un opérateur de sélection est p est une condition de sélection SP 2 I est un ensemble de parties (powerset) succinct, s’il y a un nombre fixe d’ensembles I 1, …, Ik I, t. q SP peut être exprimé en fonction des powersets de I 1, …, Ik en utilisant l’union et la différence Une contrainte Cs est succincte si l’ensemble des éléments de I satisfaisant Cs (noté: SATCs(I)) est un powerset succinct 52

Propriétés des contraintes succintes n n Contrainte succincte: n Pour tous S 1 et

Propriétés des contraintes succintes n n Contrainte succincte: n Pour tous S 1 et S 2 satisfaisant C, S 1 S 2 satisfait C n Soit A 1 les ensembles de taille 1 satisfaisant C, alors chaque ensemble S satisfaisant C sont basés sur A 1 , i. e. , S contient un sous-ensemble de A 1 , Exemple : n n n sum(S. Prix) v n’est pas succincte min(S. Price ) v est succincte Optimisation: n Si C est succincte, alors on peut générer statiquement tous les itemsets la satisfaisant (pre-counting prunable). La seule satisfaction de la contrainte n’est pas affectée par le calcul itératif de support. 53

Caractérisation de contraintes Succinctes S v, { , , } v S S V

Caractérisation de contraintes Succinctes S v, { , , } v S S V S V min(S) v max(S) v count(S) v sum(S) v avg(S) v, { , , } (contrainte de fréquence ) oui oui oui faiblement non non (non) 54

Contrainte Convertible n n n Supposer que tous les items dans les motifs sont

Contrainte Convertible n n n Supposer que tous les items dans les motifs sont triés selon l’ordre O Une contrainte C est convertible anti-monotone ssi un motif S satisfait C implique chaque suffixe de S (respectivement à O) satisfait aussi C Une contrainte C est convertible monotone ssi un motif S satisfait C implique chaque motif dont S est un suffixe (respectivement à O) satisfait aussi C 55

Exemple de contraintes Convertibles Avg(S) V n n Soit S l’ensemble de valeurs (par

Exemple de contraintes Convertibles Avg(S) V n n Soit S l’ensemble de valeurs (par ordre décroissant) {9, 8, 6, 4, 3, 1} Avg(S) v est monotone convertible respectivement à S n Si S est un suffixe de S 1, avg(S 1) avg(S) n n n {8, 4, 3} est un suffixe de {9, 8, 4, 3} avg({9, 8, 4, 3})=6 avg({8, 4, 3})=5 Si S satisfait avg(S) v, alors S 1 aussi n {8, 4, 3} satisfait avg(S) 4, ainsi que {9, 8, 4, 3} 56

Relations entre catégories de contraintes Succinctes Anti-monotones Monotones convertibles Inconvertibles 57

Relations entre catégories de contraintes Succinctes Anti-monotones Monotones convertibles Inconvertibles 57

Résumé n n Les règles d’association sont générées en 2 étapes: 1. Les itemsets

Résumé n n Les règles d’association sont générées en 2 étapes: 1. Les itemsets fréquents sont retournés 2. Les règles en sont induites On distingues les associations selon plusieurs critères n Booléennes vs. Quantitatives n Uni. vs. multi-dimensionnelles n Mono. vs. multi-niveaux 58

Résumé (suite) n n Apriori travaille par niveaux (levelwise) correspondants aux tailles des itemsets

Résumé (suite) n n Apriori travaille par niveaux (levelwise) correspondants aux tailles des itemsets n Générer les candidats (réduction du nombre) n Tester les candidats n Optimisations (hachage, sampling, réduction de la base …) FP_trees: génère après 2 passes sur la base un arbre résumant les données n Pas de génération de candidats n Pas de tests de fréquence sur la base 59

Résumé (suite) n n n Les règles multi-niveaux peuvent être générées selon différentes approches

Résumé (suite) n n n Les règles multi-niveaux peuvent être générées selon différentes approches n Même vs. Différents supports selon les niveaux n Différents types de discrétisation Tenir compte des corrélations pour ne pas prendre des décisions hâtives Introduction des contraintes pour l’extraction des règles. n Optimisation selon le type des contraintes. 60

Caractérisation de Contraintes anti-Monotones S v, { , , } v S S V

Caractérisation de Contraintes anti-Monotones S v, { , , } v S S V S V min(S) v max(S) v count(S) v sum(S) v avg(S) v, { , , } (contrainte de fréquence) oui non oui partiellement oui non partiellement convertible (oui) 61

Caractérisation de contraintes Succinctes S v, { , , } v S S V

Caractérisation de contraintes Succinctes S v, { , , } v S S V S V min(S) v max(S) v count(S) v sum(S) v avg(S) v, { , , } (contrainte de fréquence ) oui oui oui faiblement non non (non) 62