Title: R
1Rè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
21. 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
3Attributs simples
4Rè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"
5Attributs multi-valués
- Chaque ligne correspond à une ménagère
- Achats(tid, "pain") ? Achats(tid, "crème")
- en raccourci "pain" ? "crème"
ACHATS
6Règles multi-dimensionnelles
- Mettent en jeu plusieurs attributs
- Achats(tid, agegt50) ? Achats(tid,produit"pilule")
- en abrégé agegt50 ? produit"pillule"
- Voir plusieurs relations
- Personne(tid, agegt50) Personne(tid,
salairegt10000) ? 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
72. 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 gt 0.1 et Confiance gt 0.7
- comment extraire les règles intéressantes ?
- comment optimiser les calculs d'indicateurs sur
des VLDB ?
8Exemple 1
9Exemple 2
10Calculs d'indicateurs
- Support Prob. (crème et pain)
- Confiance Prob(crème et pain / crème)
11Support et Confiance
- La confiance se déduit du support
- conf (X--gtY) 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.
12Ensembles 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
133. 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.
14Algorithme 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
15Apriori 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 gt minsup // Filter
candidates -
- Answer Lk
16Exemple
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
17Apriori Génération des règles
- // Entrée MinConf, Lk ensembles ditems
fréquents - // Sortie ensemble R de règles dassociations
- Rules ?
- for (k 2 Lk-1 ????? k) do
- Foreach subset S ??? of Lk do
- Conf (S ? Lk-S) Sup(I)/Sup(S)
- If Conf gt MinConf then
- rule S ? ( Lk-S )
- Rules Rules ? r
-
- Answer Rules
184. 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
19Apriori-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
20Algorithme A-Priori PartitionSON95
- 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
21Algorithme 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 !
22Dynamic 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.
- Sil reste au moins un ensembles suspecté petit
ou large, aller à 2.
23Comptage 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
24Les index bitmap
- 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
- 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 lt200
25Bitmaps versus Listes
- Plus compactes NP bits contre NK 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
26L'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
27L'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 gt pas nécessité d'accès à la 1-BM
- Les bitmaps peuvent être compressées
- horizontalement codage des colonnes N col gt
Log2 N bits - verticalement (position, longueur) des
séquences de 1
28Comparaisons
- 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
29Evaluation 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
30Résultats Experimentaux
Le nombre de transactions varie de 100K A 300K
minsup 0.75
minsup 0.25
31Algorithme 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
32Gé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 gt minsup - conditional FP-tree
- Générer les ensembles fréquents par combinaison
des nœuds des chemins fréquents - Un peu complexe !!!
33Perfomance
- 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
34Bilan 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 ?
355. 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) ?
36Les 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 ...
37La redondance simple AY98
- R1 Agt BC
- R2 ABgt C
- R2 est redondante / R1
- même support (ABC)
- conf (R2) sup(ABC)/sup(AB)
- conf(R1) sup(ABC)/sup(A)
- donc conf(R2) gt conf(R1)
- Plus généralement, pour un k-ensemble fréquent
il suffit d'extérioriser la règle valide de
condition minimale
AB
A
Sup(AB) lt Sup(A)
38La redondance stricte AY98
sup(A) gt sup(AB)
- R1 Agt BCD
- R2 AB gt C
- R2 est redondante / R1
- conf(R1) sup(ABCD)/sup(A)
- conf(R2) sup(ABC)/sup(AB)
- sup(A) gt sup(AB)
- sup(ABCD) lt sup(ABC)
- donc conf(R1) lt 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
ABCD
ABC
Sup(ABCD) lt Sup(ABC)
39Les k-ensembles fréquents
0,3
ABC AB AC BC BD A B
C D ??????????????????
- Constituent un semi-treillis
- sup(X) gt sup(XY)
0,6
0,4
0,7
0,5
1
2
2
1
40Génération des règles revue
- Il suffit de retrouver les plus grands ensembles
de support gt MinSup - puis d'en extraire les règles de confiance gt
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 AgtAB,ACgtABC
41Des règles plus générales
- Les règles multi-attributs
- associent des valeurs d'attributs distincts
- telephone Source "New-York" gt Cible "Paris"
(5,30) - Les règles à attributs numériques RS98
- règles de la forme A???x,y gt C ou A est un
attribut numérique et C une condition il faut
trouver x et y. - exemple Age ??x,y gt Salaire gt 300 KF (5,30)
- trouver x? y?
42Rè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
43Les séquences temporelles
- Les règles cycliques ORS98
- règles vérifiées périodiquement
- ex tout les matins, café gt sucre, gâteaux
- XgtYcycle (l,o) signifie que XgtY 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)
446. 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
45Gé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 linduction orientée attribut Lu Han
93 - utilise des hiérarchies de concepts
46Hié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
lattribut 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
47Exemple de hiérarchies
Agriculture
Monde
48Exemple dinduction orientée attribut
Induction / attribut
49Algorithme 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
50Algorithme 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 gt pertes possibles - évaluer par niveau de manière indépendante gt
algorithme coûteux - évaluer en profondeur avec des seuils
51Utilisation 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 -
527. 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 ?