1 / 52

Règles Associatives

Règles Associatives. Définition et introduction Indicateurs de pertinence Algorithme d'extraction Algorithmes optimisés Vers des règles plus robustes Règles associatives multi-niveaux Conclusion. 1. Objectifs. Découvrir des règles liant les données ave un bon niveau de probabilité

wes
Download Presentation

Règles Associatives

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Attributs simples • Table normalisée ACHAT

  4. Règles mono-dimensionnelles • simple • Achat(tid, "vin")  Achat(tid, "pain") • conjonctive • Achat(tid, "pain") & Achat(tid, "fromage")  Achat(tid, "vin") • Règles booléennes (attribut discret) mono-dimensionnelles • notation simplifiée pour règles booléennes 1-D • 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"}

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

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

  7. 2. Indicateurs de pertinence • Support : probabilité absolue P(X  Y) • ||X  Y||/ ||BD|| = % de transactions vérifiant la règle • Confiance : probabilité conditionnelle P(Y/X) • ||X  Y||/||X|| = % de transactions vérifiant l'implication • Règles intéressantes ? • 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 ?

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

  9. Exemple 2 • { "crème" } { "pain" }

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

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

  12. Ensembles fréquents • Un ensemble de taille k est appelé un k-ensemble. • Tout k-ensemble fréquent est composé de (k-1)-ensembles fréquents • 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

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

  14. Algorithme Apriori [Agrawal94] • Première passe : • recherche des 1-ensembles fréquents • un compteur par produits • 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 • procédure apriori-gen • Passe k : • comptage des k-ensemble fréquents candidats • sélection des bons candidats

  15. Apriori – Fréquents itemsets L1 = {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} ;

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

  17. Apriori – Génération des règles // Entrée : MinConf, 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 >= MinConf then { rule = “ S  ( Lk-S ) ” ; Rules = Rules  {r} ;} } Answer = Rules ;

  18. 4. Comment évaluer efficacement ? • N passes sur la base • 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 • Trouver les produits d'une transaction peut nécessiter de la mémoire si table normalisée

  19. Apriori-tid • Optimisation de Apriori • chaque transaction à un tid • liste de tid par k-ensemble • Calcul d'un k-ensemble • 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) • Inconvénient • les listes sont lourdes et doivent être gardées en mémoire • inefficace si les listes ne tiennent pas en mémoire

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

  21. Algorithme de comptage dynamique • Train circulant par étape de M transactions • le train emporte des ensembles à compter • 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 • 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 • Comptage total en une passe et demi !

  22. Tous les 1-ensembles sont marqués “ suspecté petit ”. M transactions sont lues. Les compteurs et supports sont calculés pour les ensembles suspectés petits ou larges. 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. 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. Si on est en fin de table, revenir au début. S’il reste au moins un ensembles suspecté petit ou large, aller à 2. Dynamic Counting (DIC) [Brin97]

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

  24. Ménagère Produits Prix 1 {P1, P3, P5} 120 2 {P2, P3} 70 3 {P4} 150 4 {P2, P5} 110 5 {P3,P4,P6} 220 P1 P2 P3 P4 P5 P6 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 1 Les index bitmap 0-100 100-200 200-300 0 1 0 1 0 0 0 1 0 0 1 0 0 0 1 SELECT Ménagère WHERE (P2 OR P3) AND Coût <200

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

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

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

  28. Comparaisons • 2-BM est beaucoup plus performant que les listes • Il gagne plus d'un ordre de grandeur pour des supports élevés (longues listes) • 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) • Il travaille en une seule passe si assez de mémoire

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

  30. Résultats Experimentaux Le nombre de transactions varie de 100K A 300K minsup = 0.75% minsup = 0.25%

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

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

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

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

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

  36. Les mesures en question • Problème avec support et confiance • Le support est symétrique : A  B ou B  A ? • Whisky  Viande a une confiance élevée • confiance(X  Y) = P(Y/X) = P(XY)/P(X). • ignore P(Y) • élevée si P(X) est faible et P(Y) fort • La conviction [Brin97] mieux adaptée ? • 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 • Sinon, comment trouver les règles ? • Les ensembles fréquents sont insuffisants ...

  37. R1 : A=> BC R2 : AB=> C R2 est redondante / R1: même support (ABC) conf (R2) =sup(ABC)/sup(AB) conf(R1) =sup(ABC)/sup(A) donc conf(R2) > conf(R1) Plus généralement, pour un k-ensemble fréquent il suffit d'extérioriser la règle valide de condition minimale La redondance simple [AY98] AB A Sup(AB) < Sup(A)

  38. R1 : A=> BCD R2 : AB => C R2 est redondante / R1 : conf(R1) = sup(ABCD)/sup(A) conf(R2) = sup(ABC)/sup(AB) sup(A) > sup(AB) sup(ABCD) < sup(ABC) donc conf(R1) < conf(R2) 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 La redondance stricte [AY98] sup(A) > sup(AB) ABCD ABC Sup(ABCD) < Sup(ABC)

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

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

  41. Des règles plus générales • Les règles multi-attributs : • associent des valeurs d'attributs distincts • telephone : Source = "New-York" => Cible ="Paris" (5%,30%) • Les règles à attributs numériques [RS98] : • 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?

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

  43. Les séquences temporelles • Les règles cycliques [ORS98] • 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. • Les patterns séquentiels • séquence d ’items ordonnés (pas ensemble) • similaire aux règles associatives mais l'ordre importe • exemple : • achat de chaussures, puis pantalon, puis chemise • consultation de pages web (pageA, pageC, pageF)

  44. 6. Règles multi-niveaux • Difficultés de trouver des associations robustes • 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 • Impacts sur les algorithmes • trouver les règles à plusieurs niveaux • supports de règles générales plus élevés

  45. Généralisation • La généralisation permet de résumer les données • 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 • exemple : plus de légumes que de carottes • Basée sur l’induction orientée attribut [Lu & Han 93] • utilise des hiérarchies de concepts

  46. Hiérarchie de concepts • Arbre de généralisation / spécialisation de concepts • Objectifs : • 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 • Résultats : • Table généralisée ou règles (plus ou moins caractéristiques, discriminantes ...) sur les données

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

  48. Exemple d’induction orientée attribut Induction / attribut

  49. Algorithme optimisé (1) • Utilisation du même support à tous les niveaux • 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

  50. Algorithme optimisé (2) • Utilisation d'un support plus fins dans les sous-classes • 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 • 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 …

More Related