52
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

Règles Associatives

  • Upload
    wes

  • View
    51

  • Download
    3

Embed Size (px)

DESCRIPTION

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é - PowerPoint PPT Presentation

Citation preview

Page 1: 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

Page 2: Règles Associatives

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

Page 3: Règles Associatives

Attributs simples

Table normalisée

ACHAT TID PRODUIT1 pain1 crème1 eau2 crème3 pain3 crème3 vin

Page 4: Règles Associatives

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"}

Page 5: Règles Associatives

Attributs multi-valués

Chaque ligne correspond à une ménagère

Achats(tid, "pain") Achats(tid, "crème") en raccourci : {"pain"} {"crème"}

TID PRODUITS

1 pain, crème, eau2 crème3 pain, crème, vin4 eau5 crème, eau

ACHATS

Page 6: Règles Associatives

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

Page 7: Règles Associatives

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 ?

Page 8: Règles Associatives

Exemple 1

Règle

&

Support

2/4

1/4

Confiance

2/3

1/2

Page 9: Règles Associatives

Exemple 2

{ "crème" } { "pain" }

ID PRODUITS

1 pain, crème, eau2 crème3 pain, crème, vin4 eau5 crème, eau

Page 10: Règles Associatives

0.45

2tran.)nom_total(

pain)et crèmeontenant nom(tran.cSup

sup(crème)

pain)et crème(sup5.0

4

2 crème)contenant nom(tran.

pain)et crèmecontenant nom(tran.Conf

Calculs d'indicateurs

Support = Prob. (crème et pain)

Confiance = Prob(crème et pain / crème)

Page 11: Règles Associatives

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.

Page 12: Règles Associatives

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

Page 13: Règles Associatives

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.

Page 14: Règles Associatives

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

Page 15: Règles Associatives

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 cCt do c.count++; }

Lk = { cCk |c.count >= minsup } ; // Filter candidates

}

Answer = {Lk} ;

Page 16: Règles Associatives

Exemple

TID Items 100 1 3 4 200 2 3 5 300 1 2 3 5 400 2 5

ItemSet Support

{1} 2 {2} 3 {3} 3 {4} 1 {5} 3

ItemSet Support {1} 2 {2} 3 {3} 3 {5} 3

ItemSet Support

{1 2} 1 {1 3} 2 {1 5} 1 {2 3} 2 {2 5} 3 {3 5} 2

ItemSet Support {1 3} 2 {2 3} 2 {2 5} 3 {3 5} 2

ItemSet Support {2 3 5} 2

ItemSet Support {2 3 5} 2

Données en entrée

Ck Lk

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

Page 17: Règles Associatives

Apriori – Génération des règles

// Entrée : MinConf, Lk ensembles d’items fréquents// Sortie : ensemble R de règles d’associationsRules =  ;

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 ;

Page 18: Règles Associatives

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

Page 19: Règles Associatives

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

Page 20: Règles Associatives

Algorithme A-Priori Partition[SON95]

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

Page 21: Règles Associatives

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 !

Page 22: Règles Associatives

Dynamic Counting (DIC) [Brin97]

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.

Page 23: Règles Associatives

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

Page 24: Règles Associatives

Les index bitmap

Ménagère Produits Prix1 {P1, P3, P5} 1202 {P2, P3} 703 {P4} 1504 {P2, P5} 1105 {P3,P4,P6} 220

P1 P2 P3 P4 P5 P61 0 1 0 1 00 1 1 0 0 00 0 0 1 0 00 1 0 0 1 00 0 1 1 0 1

0-100 100-200 200-3000 1 01 0 00 1 00 1 00 0 1

SELECT Ménagère WHERE(P2 OR P3) AND Coût <200

Page 25: Règles Associatives

Bitmaps versus Listes

Liste de TIDs 3 5 7 12 35 42

Plus compactes : N*P bits contre N*K 16 bits Plus rapides : Opérations logiques en place de tri-fusion

Bitmap niveau 1

Groupe 0: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 150 0 1 0 1 0 1 0 0 0 0 1 0 0 0 0

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 150 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 150 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0

1

0

1

Bitmap niveau 2

Groupe 1:

Groupe 2:

Page 26: Règles Associatives

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

Page 27: Règles Associatives

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

Page 28: Règles Associatives

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

Page 29: Règles Associatives

29

ro: Correlation between item A and item BSa, Sb, Sab: Support of itemset A, B and AB

Freq: Number of frequent 1-itemsetsSup: Minimum support

Execution Cost Memory Consumption

0,0

0,5

1,0

1,5

2,0

2,5

0,01

0,20

0,40

0,60

0,80

1,00

ro

H-B

M/L

ist Sa=Sb=2%

Sa=Sb=0,75%

Sa=Sb=0,25%

Sa=2%Sb=0,25%

0

0,2

0,4

0,6

0,8

1

1,2

1,4

5% 3% 1% 0,5%

0,25

%

Sup

H-B

M/L

ist

Freq=50

Freq=100

Freq=500

Evaluation analytique

Page 30: Règles Associatives

minsup = 0.75%minsup = 0.25%

Le nombre de transactions varie de 100K A 300K

Résultats Experimentaux

Page 31: Règles Associatives

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

Page 32: Règles Associatives

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 !!!

Page 33: Règles Associatives

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 …

Page 34: Règles Associatives

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 ?

Page 35: Règles Associatives

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) ?

Page 36: Règles Associatives

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(XY) = P(X) P(¬Y)/P(X, ¬Y) mesure unique asymétrique XY s ’écrit ¬(X et ¬Y) d ’où la conviction

Sinon, comment trouver les règles ? Les ensembles fréquents sont insuffisants ...

Page 37: Règles Associatives

A

Sup(AB) < Sup(A)

AB

La redondance simple [AY98]

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

Page 38: Règles Associatives

La redondance stricte [AY98]

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

ABC

Sup(ABCD) < Sup(ABC)

ABCD

sup(A) > sup(AB)

Page 39: Règles Associatives

Les k-ensembles fréquents

Constituent un semi-treillis

sup(X) > sup(XY)

ABC

AB AC BC BD

A B C D

1%1% 2%2%

0,5%0,7% 0,4

%0,6%

0,3%

Page 40: Règles Associatives

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}

Page 41: Règles Associatives

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?

Page 42: Règles Associatives

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 …

Page 43: Règles Associatives

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)

Page 44: Règles Associatives

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

Page 45: Règles Associatives

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

Page 46: Règles Associatives

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

Page 47: Règles Associatives

Exemple de hiérarchies

Monde

Afrique AsieEurope

E. est E. ouest A. du sud

A. du nord

Agriculture

Légumes …Fruits

Bananes Oranges P. de terre Carottes…

ANY

Semaine Week-end

Lu Ma Sa Di...

Page 48: Règles Associatives

Induction /attribut

Exemple d’induction orientée attribut

Page 49: Règles Associatives

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

Page 50: Règles Associatives

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 …

Page 51: Règles Associatives

Utilisation des datacubes

Les règles multi-dimensionnelles se traitent comme les règles classiques évaluation de prédicats à la place place de

l'existence d'items

Les datacubes sont un support intéressant pour la recherche de règles N-dimensionnelles …

Page 52: Règles Associatives

7. Conclusion

De nombreuses techniques de recherche de règles La plupart passe difficilement à l'échelle

limitées à quelques milliers d ’objets échantillonner puis valider sur le reste

Un bon outil doit proposer plusieurs techniques Les problèmes :

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 ?