La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Règles dassociation. 2 Recherche des Associations Règles dassociation : motifs de la forme : Corps Tête Exemple : achète(x, cacahuètes) achète(x, bière)

Présentations similaires


Présentation au sujet: "1 Règles dassociation. 2 Recherche des Associations Règles dassociation : motifs de la forme : Corps Tête Exemple : achète(x, cacahuètes) achète(x, bière)"— Transcription de la présentation:

1 1 Règles dassociation

2 2 Recherche des Associations Règles dassociation : motifs de la forme : Corps Tête Exemple : achète(x, cacahuètes) achète(x, bière) Etant donnés: (1) une base de transactions, (2) chaque transaction est décrite par un identifiant et une liste ditems Trouver: toutes les règles qui expriment une corrélation entre la présence dun item avec la présence dun ensemble ditems Ex., 98% des personnes qui achètent des cacahuètes achètent de la bière

3 3 Mesures: Support et Confiance Trouver les règles X & Y Z avec un support > s et une confiance >c support, s, probabilité quune transaction contienne {X, Y, Z} confiance, c, probabilité conditionnelle quune 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%) Clients achetant chips Clients achetant les deux Clients achetant bière Confiance=support(X,Y,Z)/support(X,Y)

4 4 Extraction de règles: Exemple Pour A C: support = support({A, C}) = 50% confiance = support({A, C})/support({A}) = 66.6% Min. support 50% Min. confiance 50%

5 5 Extraction des associations: 1ère approche D: une base de transactions I: ensemble de tous les items avec |I|=n Algorithme 1: Extraction des ensembles fréquents Fréquents = Pour chaque J I Faire count(J)=0 Pour chaque transaction t D Faire Si J t.items Alors count(J)=count(J)+1 Si count(j) min_support Alors Fréquents=Fréquents += J Fin

6 6 Extraction des associations: 1ère approche D: une base de transactions I: ensemble de tous les items avec |I|=n Algorithme 2: Extraction des règles Règles = Pour chaque J dans Fréquents Pour chaque règle r: A 1,…,A m-1 A m t.q J={A 1,…,A m } Si confiance(r) min_confiance Alors Règles= Règles+= r Fin

7 7 Extraction des associations: 1ère approche Estimation du coût : On ne sintéresse quaux accès disques Algorithme 1: Pour chaque ensemble ditems J, il faut parcourir la base D pour compter le nombre de ses occurrences. |I|=n alors il y a 2 n ensembles J (cest le nombre de sous ensembles de I) 2 n parcours de D !!! Algorithme 2: On peut supposer que lensemble « Fréquents » réside en mémoire et count(j) est une information déjà calculée par algorithme 1 pas daccès Coût global : 2 n parcours de D !!!

8 8 Extraction des associations: A priori Principe : Si un ensemble est non fréquent, alors tous ses sur-ensembles ne sont pas fréquents Si {A} nest pas fréquent alors {AB} ne peut pas lêtre si {AB} est fréquent alors {A} et{B} le sont Itérativement, trouver les itemsets fréquents dont la cardinalité varie de 1 a k (k-itemset) Utiliser les itemsets fréquents pour générer les règles dassociation

9 9 Lalgorithme Apriori Etape de jointure: C k est généré en joignant L k-1 avec lui même Etape délimination: Chaque (k-1)-itemset qui nest pas fréquent ne peut être un sous ensemble dun k-itemset fréquent C k : Itemset candidat de taille k, L k : itemset fréquent de taille k L 1 = {items fréquents}; for (k = 1; L k != ; k++) do begin C k+1 = candidats générés à partir de L k % jointure for each transaction t dans la base do incrémenter le COUNTdes candidats de C k+1 qui sont dans t L k+1 = candidats dans C k+1 dont COUNT > support_min end for End for return k L k

10 10 Apriori Exemple base D Scan D C1C1 L1L1 L2L2 C2C2 C2C2 C3C3 L3L3 Avec min_support=2

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

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

13 13 Exemple: Règles dassociation Supposons que les données soient dans une BD relationnelle avec la table Transaction(Tid, Item). On a 10 8 tuples concernant 10 7 transactions et lon a 10 5 items différents. En moyenne chaque transaction concerne 10 items. La requête suivante sélectionne les paires ditems fréquents SELECT t1.item, t2.item FROM transaction t1, transaction t2 WHERE t1.Tid= t2.Tid AND t1.item < t2.item GROUP BY t1.item, t2.item HAVING COUNT(*) >= seuil*taille de la base Pour chaque transaction on a paires à regarder ainsi la jointure a 45*10 7 tuples

14 14 Exemple: Règles dassociation Remarque: si {item_1} nest pas fréquent alors certainement la paire {item_1, item_i} ne lest 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 10 8 occurrences ditems. Pour quun item soit fréquent il faut quil apparaisse 0,01 * 10 7 =10 5 fois. Pour chercher les paires fréquentes, utiliser le résultat de la requête précédente plutôt que la table initiale

15 15 Problèmes dApriori Le principe de lalgorithme: 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ù lalgo pèche : génération des candidats Beaucoup: itemsets fréquents générant itemsets candidats Pour trouver les 100-itemsets on doit générer candidats. Plusieurs scans de la base: On doit faire (n +1 ) scans, pour trouver les n-itemsets fréquents

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

17 17 FP-Trees: Exemple TID T100T200T300T400T500T600T700T800T900 Liste items I1, I2, I5 I2, I4I1,I3I1,I2, I4 I2,I3 I1,I3I1,I2, I3,I5 I1,I2, I3 Supposons que min-support=2. On construit la liste « triée »: L = [I2:7, I1:6, I3:6, I4:2, I5:2] On parcourt une 2ème fois la base. On lit les transactions selon lordre des items dans L, i.e pour T100 on a I2,I1,I5. La lecture de T100 donne Null I2:1 I1:1 I5:1 7I2 6I1 6I3 2I4 2I5

18 18 FP-Trees: exemple TID T100T200T300T400T500T600T700T800T900 Liste items I1, I2, I5 I2, I4I2,I3I1,I2, I4 I1,I3I2,I3I1,I3I1,I2, I3,I5 I1,I2, I3 La lecture de T200 va a priori générer une branche qui relie la racine à I2 et I2 à I4. Or cette branche partage un préfixe (i.e I2) avec une branche qui existe déjà. Larbre obtenu après lecture de T200 sera I2:2 I1:1 I5:1 7I2 6I1 6I3 2I4 2I5 Null I4:1

19 19 FP-Trees: exemple TID T100T200T300T400T500T600T700T800T900 Liste items I1, I2, I5 I2, I4I1,I3I1,I2, I4 I2,I3 I1,I3I1,I2, I3,I5 I1,I2, I3 En lisant T300, lordre selon L est I1,I3. Ceci nous amène à ajouter une branche Null I1 I3. Noter quelle na pas de préfixe commun avec ce qui existe déjà. On obtient I2:2 I1:1 I5:1 7I2 6I1 6I3 2I4 2I5 Null I4:1 I1:1I3:1

20 20 FP-Trees: exemple I2:7 I5:1 7I2 6I1 6I3 2I4 2I5 Null I1:4 I1:2 I3:2 TID T100T200T300T400T500T600T700T800T900 Liste items I1, I2, I5 I2, I4I1,I3I1,I2, I4 I2,I3 I1,I3I1,I2, I3,I5 I1,I2, I3 Finalement, le FP_tree obtenu est I4:1 I3:2 I4:1 I3:2

21 21 Phase de lexploration Considérons I5. Il apparaît dans 2 branches. I2 I1 I5:1 et I2 I1 I3 I5:1 Ainsi, pour le suffixe I5, on a 2 chemins préfixes: et. Ils forment sa «table conditionnelle» TiDItemset 1I2, I1 2I2, I3, I1

22 22 Phase dexploration (suite) Le «FP-tree conditionnel» de I5 contient une seule branche I2 I1. I3 nen fait pas partie car son support est 1 qui est <2 (Rappel: min_support=2) Ce chemin unique va générer toutes les combinaisons de I5 avec I1 et I2, i.e {I1,I5}:2, {I2,I5}:2, {I1,I2,I5}:2

23 23 Considérons I4. Sa table conditionnelle est formée de et Le FP-Tree conditionnel ne contient donc quun seul nœud I2 Nous obtenons donc un itemset fréquent qui est {I2,I4}:2 Phase de lexploration

24 24 Phase de lexploration ItemBase conditionnelleFP-tree conditionnel Itemsets générés I5 :1, :1I2:2 I1:2{I2, I5}:2 {I1, I5}:2 {I2,I1,I5}:2 I4 :1, :1I2:2{I2, I4}:2 I3 :2, :2, :2I2:4 I1:2 I1:2 {I2, I3}:4 {I1,I3}:4 {I2, I1, I3}:2 I1 :4I2:4{I2,I1}:4 Ce nest pas la peine de regarder I2 car ça va donner les combinaisons avec les autres items qui ont déjà été considérés

25 25 Règles dassociation multi-niveaux Les items forment des hiérarchies. Les items au niveau inférieur ont des supports inférieurs Les bases de transactions peuvent prendre en compte les niveaux Item {111} représente le « yaourt fruit » Aliment Pain Produit_Laitier yaourt fonduBrie fromagefarine seigle Fruit

26 26 Règles dassociation multi-niveaux On dispose dune hiérarchie de concepts Les niveaux sont numérotés de 0 à n en commençant par le niveau le plus général Les concepts (ou items) de chaque niveau i sont numérotés de 1 à m i avec m i qui représente le nombre de concepts dans le niveau i Les données dont on dispose représentent les transactions avec les items du plus bas niveau Avec une chaîne de n digits on peut identifier tous les items du plus bas niveau.

27 27 Exploration multi-niveaux: support uniforme Approche Top-Down: On utilise la propriété de non monotonie: Si un concept (ou ensemble de concepts) est non fréquent, alors tous ses fils sont non fréquents Ex: Si produit_laitier est non fréquent alors yaourt ne lest certainement pas. Ex: Si {produit_laitier, pain} est non fréquent alors {yaourt, pain_au_seigle} ne lest certainement pas Problème: On peut rater des règles au niveau inférieur

28 28 Exploration multi-niveaux: support décroissant Si niveau_i min-support(j) Min-support du niveau 1 est 50% et min-support de niveau 2 est de 10% Dans ce cas, il y a différentes approches Indépendance entre niveaux Filtre sur un seul item Filtre sur k items

29 29 Indépendance entre niveaux Dans ce cas, on nutilise aucune connaissance sur les parents Ce nest pas parce quun parent nest pas fréquent que le fils ne le sera pas Ce nest pas parce quun fils est fréquent que le parent le sera Le calcul peut être Top-Down ou Bottom-Up

30 30 Filtre sur un seul item Un item au niveau i sera examiné si son parent est considéré comme fréquent Si Pain est fréquent alors on peut voir si Pain-au-seigle lest. Si produit-laitier est fréquent alors on peut voir si yaourt lest. Approche Top-Down.

31 31 Filtre sur k items Un k-itemset est vérifié au niveau i si les k-parents au niveau i-1 sont fréquents {pain-au-seigle, yaourt} sera vérifié seulement si {pain, produit-laitier} est fréquent Une approche Top-Down Risque de perte de règles intéressants aux niveaux inférieurs

32 32 Associations multi-niveaux: Elimination des règles redondantes Certaines règles peuvent être redondantes à cause des relations de parenté entre items Exemple 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 sur sa règle ancêtre Dans lexemple, sil y a 4 fils du nœud Produit_laitier dont Fromage, alors le support 2% est « prévisible »

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

34 34 Attributs catégoriels Si tous les attributs sont catégoriels, on peut se ramener au cas classique Achète(T100,Bob,cola), Achète(T100,Bob,popcorn), Occupation(Bob,étudiant) est remplacé par la transaction T={cola,popcorn,étudiant} Si I est fréquent et si la règle cola, étudiant popcorn a une confiance suffisante alors la règle multidimensionnelle Achète(X,cola), occupation(X,étudiant) Achète(X,popcorn) est générée

35 35 Techniques pour Associations MD Chercher les ensembles à k-prédicats fréquents: Exemple: {age, occupation, achète} est un ensemble à 3 prédicats. Le seul attribut quantitatif est age. Les techniques peuvent être distinguées sur le mode de traitement de lattribut age. 1. Discrétisation statique Remplacer les valeurs dage par des intervalles 0..20, , …Chaque intervalle devient donc une catégorie. 2. Règles quantitatives 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 Cest un processus de discrétisation dynamique basé sur la distance entre les données

36 36 1) Discrétisation statique Discrétiser avant dexplorer 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 (revenu)(age) () (achète) (age, revenu)(age,achète)(revenu,achète) (age, revenu, achète)

37 37 2) Règles quantitatives age(X,34..35) revenu(X,31K..50K) achète(X,TV grand écran) 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: A quan1 A quan2 A cat1 Regrouper les règles adjacentes pour former des règles générales en utilisant une grille 2-D Exemple:

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

39 39 S[X] est un ensemble de N tuples t 1, t 2, …, t N, projetés sur lensemble dattributs X Le diamètre de S[X]: dist x :métrique de distance, ex. Distance euclidienne, ou de Manhattan Regroupements et mesures de distances

40 40 Le diamètre, d, exprime la densité dun groupe C X, où Exploration des règles basées sur la distance Le minimum de densité, d 0, remplace la notion de support C X1,…, C Xn C Y1,…,C Ym est extraite si Regroupements et mesures de distances

41 41 Mesures dintérêt Mesures objectives: ¶ support et · confiance Mesures subjectives Une règle est intéressante ¶ Si elle est inattendue et/ou · actionnable (lutilisateur peut faire quelque chose avec)

42 42 Critiques des notions de Support et de confiance Parmi 5000 étudiants 3000 jouent au basket 3750 prennent des céréales 2000 jouent du basket et prennent des céréales Jouer au basket prendre des céréales[40%, 66.7%] nest pas informative car il y a 75% détudiants qui prennent des céréales ce qui est plus que 66.7%. jouer au basket pas de céréales[20%, 33.3%] est plus pertinente même avec un support et une confiance inférieurs

43 43 Critiques des notions de Support et de confiance Exemple 2: X et Y: positivement corrélés, X et Z, négativement corrélés Les support et confiance de X Z dominent Nous avons besoin dune mesure de corrélation est aussi appelé le lift de A => B

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

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

46 46 Exploration avec contraintes Exemple, Base: (1) trans (TID, Itemset ), (2) itemInfo (Item, Type, Prix) Une requête dassociation contrainte (RAC) est une expression de la forme {(S 1 S 2 )|C }, où C est un ensemble de contraintes sur S 1 et S 2 incluant la contrainte de fréquence Une classification de contraintes (à une variable) : Contraintes de classe : ex. S2 I1 Contrainte de domaine : ex. S2.Prix < 100 Contraintes dagrégation : ex. avg(S 2.Prix) 100

47 47 Optimisation en présence de contraintes Soit une RAC = { (S1 S2) | C }, lalgorithme doit être: correcte: Il ne trouve que les itemsets fréquents qui satisfont C complet: Il trouve tous les itemsets fréquents qui satisfont C Solution naïve: Appliquer Apriori pour trouver les itemsets fréquents puis éliminer les itemsets ne satisfaisant pas C Autre approche : Analyser les propriétés des contraintes pour les intégrer dans Apriori lors de la phase de lexploration des itemsets fréquents.

48 48 Contraintes Anti-monotones et Monotone anti-monotone Une contrainte C a est anti-monotone ssi pour chaque itemset S, si S ne satisfait pas C a, alors aucun de ses sur-ensembles ne satisfait C a monotone C m est monotone ssi pour chaque S, si S satisfait C m, alors chacun de ses sur-ensembles satisfait C m

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

50 50 Contraintes anti-monotones C: sum(S.Prix) =v est partiellement anti-monotone dans le sens suivant : C est équivalente à C: sum(S.Prix) v et C: sum(S.Prix) v Si S ne satisfait pas C alors une des deux conditions de la conjonction est fausse Si cest C qui est fausse, alors on peut faire des conclusions sur les S S

51 51 Contraintes monotones Le problème avec ces contraintes est que lon ne peut pas les intégrer lors de lévaluation des itemsets fréquents Exemples Sum(S.prix) 100 est monotone Sum(S.prix) v nest pas monotone Par contre, si S S et Sum(S.prix) 100 alors ce nest pas la peine de tester Sum(S.prix)

52 52 Contraintes succinctes Une contrainte est succincte si on peut générer statiquement tous les itemsets qui la satisfont Exemple : A S avec I={A, B, C, D} Lensemble des itemsets S qui satisfont la condition sont tous les sous-ensembles de I qui contiennent A

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

54 54 Contrainte Convertible Supposons que tous les items dans les motifs soient triés selon lordre O convertible anti-monotone Une contrainte C est convertible anti-monotone ssi un motif S satisfait C implique que chaque suffixe de S (respectivement à O) satisfait aussi C convertible monotone Une contrainte C est convertible monotone ssi un motif S satisfait C implique que chaque motif dont S est un suffixe (respectivement à O) satisfait aussi C

55 55 Exemple de contraintes Convertibles Avg(S) V Soit S lensemble de valeurs (par ordre décroissant) {9, 8, 6, 4, 3, 1} Avg(S) v est monotone convertible respectivement à S Si S est un suffixe de S 1, avg(S 1 ) avg(S) {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 {8, 4, 3} satisfait avg(S) 4, ainsi que {9, 8, 4, 3}

56 56 Résumé Les règles dassociation 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 Booléennes vs. Quantitatives Uni. vs. multi-dimensionnelles Mono. vs. multi-niveaux

57 57 Résumé (suite) Apriori travaille par niveaux (levelwise) correspondants aux tailles des itemsets Générer les candidats (réduction du nombre) Tester les candidats 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 Pas de génération de candidats Pas de tests de fréquence sur la base

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


Télécharger ppt "1 Règles dassociation. 2 Recherche des Associations Règles dassociation : motifs de la forme : Corps Tête Exemple : achète(x, cacahuètes) achète(x, bière)"

Présentations similaires


Annonces Google