Title: Rgles dassociation
1Règles dassociation
2Recherche 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
3Mesures Support et Confiance
- Trouver les règles X Y ? Z avec un support gt s
et une confiance gtc - support, s, probabilité quune transaction
contienne X, Y, Z - confiance, c, probabilité conditionnelle quune
transaction qui contient X, Y contienne aussi Z
Clients achetant les deux
Clients achetant chips
Clients achetant bière
Confiancesupport(X,Y,Z)/support(X,Y)
Soit support minimum 50, et confiance minimum
50, A ? C (50, 66.6) C ? A (50, 100)
4Extraction 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
5Extraction des associations 1ère approche
- D une base de transactions
- I ensemble de tous les items avec In
- 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équentsFréquents J
- Fin
-
6Extraction des associations 1ère approche
- D une base de transactions
- I ensemble de tous les items avec In
- Algorithme 2 Extraction des règles
- Règles ?
- Pour chaque J dans Fréquents
- Pour chaque règle r A1,,Am-1?Am t.q
JA1,,Am - Si confiance(r) ? min_confiance Alors
- Règles Règles r
- Fin
7Extraction 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. - In alors il y a 2n ensembles J (cest le
nombre de sous ensembles de I)?2n 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 2n parcours de D !!!
8Extraction 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 etB 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
9Lalgorithme Apriori
- Etape de jointure Ck est généré en joignant
Lk-1avec 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 - Ck Itemset candidat de taille k, Lk itemset
fréquent de taille k - L1 items fréquents
- for (k 1 Lk !? k) do begin
- Ck1 candidats générés à partir de Lk
jointure - for each transaction t dans la base do
- incrémenter le COUNTdes candidats de
Ck1 qui sont dans t - Lk1 candidats dans Ck1 dont COUNT gt
support_min - end for
- End for
- return ?k Lk
10Apriori Exemple
Avec min_support2
base D
L1
C1
Scan D
C2
C2
L2
Scan D
C3
L3
Scan D
11Génération des Candidats
- Supposons que les items de Lk-1 sont triés
- Etape 1 self-join de Lk-1
- Insert into Ck
- select p.item1, p.item2, , p.itemk-1, q.itemk-1
- from Lk-1 p, Lk-1 q
- where p.item1q.item1, , p.itemk-2q.itemk-2,
p.itemk-1 lt q.itemk-1 - Etape 2 pruning (elagage)
- Pour chaque itemset c dans Ck Faire
- Pour chaque (k-1)-sous-ensemble s de c Faire
- Si (s nest pas dans Lk-1) Alors supprimer c
de Ck
12Exemple de Génération de Candidats
- L3abc, abd, acd, ace, bcd
- Self-join L3L3
- abcd à partir de abc et abd
- acde à partir acd et ace
- Pruning
- acde est supprimé car ade nest pas dans L3
- C4abcd
13Exemple Règles dassociation
- Supposons que les données soient dans une BD
relationnelle avec la table Transaction(Tid,
Item). On a 108 tuples concernant 107
transactions et lon a 105 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 lt t2.item
- GROUP BY t1.item, t2.item
- HAVING COUNT() gt seuiltaille de la base
- Pour chaque transaction on a paires
à regarder ainsi la jointure a 45107 tuples
14Exemple 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() gt seuiltaille de la base
- si seuil 0,01 alors au plus 1000 item seront
dans le résultat. - Raison il y a 108 occurrences ditems. Pour
quun item soit fréquent il faut quil apparaisse
0,01 107 105 fois. - Pour chercher les paires fréquentes, utiliser le
résultat de la requête précédente plutôt que la
table initiale
15Problè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
- 104 1-itemsets fréquents 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
- On doit faire (n 1 ) scans, pour trouver les
n-itemsets fréquents
16Exploration 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 !
17FP-Trees Exemple
Supposons que min-support2. On construit la
liste  triée L I27, I16, I36, I42,
I52 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
I21
I11
I51
18FP-Trees exemple
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
Null
I22
I41
I11
I51
19FP-Trees exemple
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
Null
I11
I31
I22
I41
I11
I51
20FP-Trees exemple
Finalement, le FP_tree obtenu est
Null
I27
I12
I32
I41
I14
I32
I51
I41
I32
I51
21Phase de lexploration
- Considérons I5. Il apparaît dans 2 branches.
I2?I1?I51 et I2?I1?I3?I51 - Ainsi, pour le suffixe I5, on a 2 chemins
préfixes ltI2,I11gt et ltI2,I1,I31gt. Ils forment
sa table conditionnelle
22Phase 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 lt2 (Rappel
min_support2) - Ce chemin unique va générer toutes les
combinaisons de I5 avec I1 et I2, i.e I1,I52,
I2,I52, I1,I2,I52
23Phase de lexploration
- Considérons I4. Sa table conditionnelle est
formée de ltI2,I11gt et ltI21gt -
- Le FP-Tree conditionnel ne contient donc quun
seul nud I2 -
- Nous obtenons donc un itemset fréquent qui est
I2,I42
24Phase de lexploration
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
25Rè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Â
Fruit
26Rè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 à mi avec mi 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.
27Exploration 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 -
28Exploration multi-niveaux support décroissant
- Si niveau_i lt niveau_j alors min-support (i) gt
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
29Indé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
30Filtre 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.
31Filtre 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
32Associations 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 nud
Produit_laitier dont Fromage, alors le support 2
est  prévisibleÂ
33Associations 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
34Attributs 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 Tcola,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,po
pcorn) - est générée
35Techniques 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, 21..40, 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
361) 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
k1 scans
372) Règles quantitatives
- 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 Aquan1 ? Aquan2 ?
Acat1 - Regrouper les règles
- adjacentes pour former
- des règles générales
- en utilisant une grille 2-D
- Exemple
age(X,34..35) ? revenu(X,31K..50K) ?
achète(X,TV grand écran)
383) 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
39Regroupements et mesures de distances
- SX est un ensemble de N tuples t1, t2, , tN ,
projetés sur lensemble dattributs X - Le diamètre de SX
- distxmétrique de distance, ex. Distance
euclidienne, ou de Manhattan
40Regroupements et mesures de distances
- Le diamètre, d, exprime la densité dun groupe
CX , où - Exploration des règles basées sur la distance
- Le minimum de densité, d0 , remplace la notion de
support - CX1,, CXn?CY1,,CYm est extraite si
41Mesures 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)
42Critiques 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éales40,
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éales20, 33.3
est plus pertinente même avec un support et une
confiance inférieurs
43Critiques 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 gt B
44Autres 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)lt1.
45Exploration 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
46Exploration 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 (S1?S2 )C , - où C est un ensemble de contraintes sur S1 et S2
incluant la contrainte de fréquence - Une classification de contraintes (à une
variable) - Contraintes de classe ex. S2 ? I1
- Contrainte de domaine ex. S2.Prix lt 100
- Contraintes dagrégation ex. avg(S2.Prix) ? 100
47Optimisation 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.
48Contraintes Anti-monotones et Monotone
- 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 - Cm est monotone ssi pour chaque S, si S satisfait
Cm, alors chacun de ses sur-ensembles satisfait Cm
49Proprié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
50Contraintes 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
51Contraintes 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)
52Contraintes succinctes
- Une contrainte est succincte si on peut générer
statiquement tous les itemsets qui la satisfont - Exemple
- A ? S avec IA, B, C, D
- Lensemble des itemsets S qui satisfont la
condition sont tous les sous-ensembles de I qui
contiennent A
53Caractérisation de contraintes Succinctes
S ? v, ? ? ?, ?, ? v ? S S ?V S ? V S ?
V min(S) ? v min(S) ? v min(S) ? v max(S) ?
v max(S) ? v max(S) ? v count(S) ? v count(S) ?
v count(S) ? v sum(S) ? v sum(S) ? v sum(S) ?
v avg(S) ? v, ? ? ?, ?, ? (contrainte de
fréquence )
oui oui oui oui oui oui oui oui oui oui oui faible
ment faiblement faiblement non non non non non
54Contrainte Convertible
- Supposons que tous les items dans les motifs
soient triés selon lordre O - Une contrainte C est convertible anti-monotone
ssi un motif S satisfait C implique que chaque
suffixe de S (respectivement à O) satisfait aussi
C - 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
55Exemple 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 S1, avg(S1) ? 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 S1 aussi
- 8, 4, 3 satisfait avg(S) ? 4, ainsi que 9, 8,
4, 3
56Résumé
- Les règles dassociation sont générées en 2
étapes - Les itemsets fréquents sont retournés
- 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
57Ré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
58Ré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.