410 likes | 497 Views
Extraction de règles et FCA. Dates. FCA Base Guigues-Duquenne 1986 Luxemburger 1991 … Data mining Agrawal 1992 … Lien Pasquier 1998-99 (close) Zaki 2000 (charm) Pei 2001 (closet) Stumme 2002 (titanic). Premières définitions. Contexte: (O,A,R) Itemset ferme A1 Ad(e(A1))=A1
E N D
Dates • FCA • Base Guigues-Duquenne 1986 • Luxemburger 1991 … • Data mining • Agrawal 1992 … • Lien • Pasquier 1998-99 (close) • Zaki 2000 (charm) • Pei 2001 (closet) • Stumme 2002 (titanic) ...
Premières définitions • Contexte: (O,A,R) • Itemset ferme A1Ad(e(A1))=A1 • Itemset fermé Fréquent: A1 fermé + support(A1)=|A1|/|O| ≥ minsup • Nous noterons d(e(A1)) par ƒ(A1) (pour fermeture de A1). • Treillis iceberg: sup demi treillis de Galois ne conservant que les itemsets fermés fréquents
Générateur minimal • Un itemset G est dit générateur minimal d’un itemset A1ƒ(G)=A1 et G1G /ƒ(G1)=A1 • L’opérateur ƒ induit une relation d’équivalence sur les itemsets. • même support. • générateurs minimaux: incomparables + petits • Itemset ferme: élément le plus large
Règle associative • Relation entre itemsets fréquents X, Y et XY de la forme R: X Y-X • X prémisse • Y conclusion • Confiance:conf(R)=support(Y)/support(X) • On notera la régle par: R: X -c Y ou c représente la confiance. • Si conf(R)=1 est nommée règle associative exacte sinon elle est appelée approximative (noté X Y)
Problèmes • Nombre de règles • Redondance • Support:Validité statistiques & Cas rare
Sélection • Sélection avec perte d’information • Forme de la règle • Métrique d’intérêt • Sélection sans perte d’information • Sous ensemble générique: base
Redondances entre règles • Augmentation gauche Si I1 J1 est exacte alors I1 I2 J2 est exacte • si I1 J1 et I2 J1 sont exactes alors I1I2 J1 est exacte • si I1 J1 et I1J2 sont exactes alors I1J1J2 est exacte • Si I J1J2 est exacte alors I J1 et IJ2 sont exactes • Si IJ et JK alors IK Amstrong
Redondance-1 • Une règle R: X -c Y est considérée comme redondante par rapport à R1: X1 -c Y1 si R vérifie les conditions suivantes: • Support(R)=Support(R1) et Conf(R)=Conf(R1) • (X1X et YY1)
Base générique • Soit FF L’ensemble des itemsets fermés fréquents extrait d’un contexte. Pour un itemset fermé cFF nous notons Gc l’ensemble de ses générateurs minimaux. La base générique de règles associatives exactes est alors comme suit: GB= {R: g (c - g) | cFF, gGc et g≠c}
Base règle approximative • La base informatique de règles associatives IB est donnée par: IB={R | R: X-cY, Y FF et ƒ(X)≤Y et confiance(R) ≥minconf et support(Y)≥minsup}
Règle approximative: C-0.5ABE « Lien » entre C et ABCE Règles génériques: ABCE AEBC « Provient » du noeud ABCE
Principe de recherche classique • Recherche des itemsets fréquents • Pour chaque itemset Y trouvé, générer toutes les règles X -cY-X avec une confiance suffisante. • Dans le cas de règles X Y-X on peut s’intéresser aux générateurs et générer une règle par la fermeture sur ce générateur
Algorithmes basés sur les fermés • Générer et tester • parcours par niveau • élagage: support + propriétés structurelles • Diviser pour régner • découpage en sous-contexte • recherche des itemset fermés dans ces sous-contextes
Propriétés des fermés • La fermeture d’un itemset fréquent donne un itemset fermé fréquent • Le support d’un itemset I frequent non fermé est égal au support du plus petit fermé contenant I.
Algorithmes: Générer et Tester • Entrées: Contexte et minsup • Sortie: ensemble des itemset fermés fréquents • 1: Initialiser l’ensemble de candidats de taille 1 • 2: tant que ensemble de candidats non vide faire • 3: Etape élagage (ou de test) • 1) Calculer le support des candidats • 2) Elaguer l’ensemble de candidats par rapport à minsup • 3) (Eventuellement) calculer les fermetures des candidats retenus • 4: Etape de construction • 1) Construire l’ensemble des candidats à utiliser à l’itération suivante • 2) Elaguer cet ensemble en utilisant les propriétés structurelles des itemsets fermes et/ou des générateurs minimaux. • 5: fin tant que • 6: retourner Ensemble des itemsets Fermés Fréquents
Close • Parcours en Largeur • item k => item k+1 • Pasquier 1999
Propriété • Soit I un itemset de taille i et S un ensemble de sous-ensembles de taille i-1de I avec UAS A = I, si AS / Iƒ(A) alors ƒ(I)=ƒ(A) Ou ƒ(A) indique la fermeture de A
Choix des candidats • FFCk candidat taille k,FCk fermé taille k • Gen-Generateur (FCk) • Joindre les éléments taille k permettant de trouver des itemsets de taille k+1 (donne FFCk basé sur Apriori) • Eliminer les éléments de FFCk qui sont inclus ou égal à la fermeture de l’un des éléments de taille k (dernière propriété)
Exemple • FFC1 initialisé avec 1-itemset • Calcul pour chaque élément de FFC1 de sa fermeture et de son support • FC1 produit en élaguant de FFC1 les éléments ne respectant pas le minsup • retrait de D /support • FFC2 est produit à partir de FC1. • production de tous les 2-itemset via I1,I2 FC1.genSSI I1.ferm I2.ferm et I2.ferm I1.ferm • => non production de AC • => non production de BE
Algorithm Close • Entrées: Contexte et minsup • Sortie: ensemble des itemset fermés fréquents • 1: Initialiser l’ensemble de candidats de taille 1 • k<-1 • initialisation de FFCk .gen<- {1-itemset} // Candidat • 2: Tant que FFCk.gen≠0 faire • 3: Etape élagage(ou de test) • 1) FFCk.supp <- Ø • 2) FFCk.ferm <- Ø; • 3) FFCk<- Gen-Fermeture(FFCk) // Fermes pour les generateurs • 4: Etape construction • 1) pour tout c FFCk faire • si (c.supp≥minsup) alors • FCk <-FCk c // Itemset fermé fréquent • fin si • FFCk+1.ferm=Gen-Generateur(FCk) • fin pour • 5: k++ • 5: fin tant que • 6: retourner FC= FCk
Closet: Diviser pour régner • But: gérer la taille de la liste des candidats • Principe: • Découpage en sous-contexte • traitement récursif pour chacun d’eux (backtrack)
Exemple • Commence par A (=>TRI/support) • Recherche de tous les fermés contenant A • (sous-contexte) [A] • Sup(A)=3 • l’item C est vu dans toutes les transactions sup(C)=3 • Résultat CA (propriétés) Recherche sous contexte B sous A Sup(BA)=2 =>item C et E vu deux fois =>Résultat BACE (propriétés) ... Puis prend le Sous-contexte E (sans A car on a déjà trouvé tous les fermés contenant A) ...
Closet: Propriété • Soit X et Y deux itemsets et sup(X)=sup(Y), Y n’est pas itemset fermé si Y X • Si il existe un itemset Y apparaissant dans un sous-contexte, XY forme un ferme fréquent s’il n’est pas un sous ensemble d’un fermé fréquent avec le même support.
Implication unitaire forme: a A - Recherche des éléments irréductibles • Fermeture de ces éléments • polynomial
Application unaire • A a • Utile pour la classification • Lien avec un système d’implication B A <=> {B a | aA}
Propriétés • a1a2.... an -> a <=> e(a1a2.... an ) e(a) • (a1a2.... an) a<=> e(a1a2.... an ) U e(a)= O • a1 a2 .... an a <=> e(a1) Ue(a2) U.... UU e(an)= O-e(a) • Retrouve un probleme de couverture ensembliste • NP-complet si on cherche la couverture minimale • Algorithme glouton qui donne une couverture si elle existe.
Extension • Ajout du Ou et du Non dans les règles • Passage au structurel • via propositionnalisation • via spécialisation et fermeture
Algorithm Close • Entrées: Contexte et minsup • Sortie: ensemble des itemset fermés fréquents • 1: Initialiser l’ensemble de candidats de taille 1 • k<-1 • initialisation de FFCk .gen<- {1-itemset} // Candidat • 2: Tant que FFCk.gen≠0 faire • 3: Etape élagage(ou de test) • 1) FFCk.supp <- Ø • 2) FFCk.ferm <- Ø; • 3) FFCk<- Gen-Fermeture(FFCk) // Fermes pour les generateurs • 4: Etape construction • 1) pour tout c FFCk faire • si (c.supp≥minsup) alors • FCk <-FCk c // Itemset fermé fréquent • fin si • FFCk+1.ferm=Gen-Generateur(FCk) • fin pour • 5: k++ • 5: fin tant que • 6: retourner FC= FCk
Principe charm • Parcours en profondeur • Gestion de couple Itemset et Objets • Opération entre deux itemsets: Union itemset et intersection des extensions • Ordre de parcours: Pour X1 et X2 on dit que X1 ≤ X2 ssi Order(X1)≤Order(X2) un ordre partiel donné (par exemple ordre lexical ou ordre sur les supports => ordre de parcours
charm propriétés • Pour tout itemset X, support(X)=support(ƒ(X)) • La régle X -pY est équivalente à la règle ƒ(X) -qƒ(Y) et p=q • On a X1 x e(X1) et X2 x e(X2) et X1 ≤ X2 • si e(x1)=e(x2) alors e(X1 x2)=e(x1)e(x2)=e(X1)=e(x2) => on remplace chaque occurence de X1 par X2 • si e(x1) e(x2) alors e(X1 x2)=e(x1)e(x2)=e(X1)≠e(x2) => on remplace chaque occurence de X1 par X1 x2 car X1 apparait dans chaque objet ou x2 apparait • si e(x1) e(x2) alors e(X1 x2)=e(x1x2)=e(X2)≠e(x1) => on remplace chaque occurence de X2 par X1 x2 car X2 apparait dans chaque objet ou x1 apparait • si e(x1) ≠ e(x2) alors e(X1 x2)=e(x1x2)≠e(X2)≠e(x1) => on ne peut rien éliminer. X1 et X2 méne à 1 fermé.
Exemple Pour minsup=2, ≠ indique non inclusion , [X] liste des fils de l’itemset X On commence [Ø]= {A x 135, Bx2345,Cx1235,Dx1,Ex2345} On prend le premier élement On cherche [A] on prend Ax135 et on le combine aux éléments du pére ici [Ø] soit {A B C E }=> AB x 35 comme e(A) ≠ e(B), ABx35 est inséré dans [A] (fils de A) AC x 35 comme e(A) e(c)alors A est remplace par AC ACEx35 comme e(AC) ≠ e(E) alors ACEx35 est ajouté à AC [AC]={ABx35,ACEx35} Ensuite on relance (récursif => profondeur) en partant de [AC] on cherche [AB] on combine ABx35 avec ACEx35 comme e(AB)=e(ACE) alors AB est remplace par ABCE On cherche [B] comme e(B)≠e(C) BCx235 est ajouté comme e(B)=e(E), BE sont combiné et E est enlevé de [Ø] et B remplacé par BE C ne peut être étendu et est donc inséré au résultat
Algorithme Charm • CharmEtend • Entrées: [P],FC • Sortie: FC modifié • pour tout Ai x e(Ai) [P] faire • [Pi] =0 et X= Ai • pour tout Aj x e(Aj) [P]& Aj≥Ai • X=XAi • Y=e(Ai) e(Aj) • ?? ou passe X Y dans Pi ? • //Elagage • Charm-Proprietes([P], [Pi]) • si [Pi] ≠0 alors • CharmEtend([Pi],FC) • Supprimer([Pi]) • FC=FCX • fin si • fin pour •fin pour • retourne FC • Charm • Entrées: Contexte et minsup • Sortie: ensemble des itemset fermés fréquents • 1: Initialiser l’ensemble de candidats de taille 1 • [P] <- {Ai x e(Ai) avec Ai • et support(Ai) ≥ minsup} • 2: Etape de construction • CharmEtend([P],FC=ø} • 6: retourner FC Charm-proprietes: voir transparent précédent
Titanic • Algorithme en largeur • Stumme 2002
Principe de Titanic • Amélioration de l’utilisation des supports => support estimatif: valeur minimale des cardinaux des deux itemsets joins, but limiter l’usage de l’opération ƒ
Propriétés • Pour un itemset X.ƒ(X) = X{mA-X/ supp(X)=supp(X{m})} Donc si l’on connait les supports on peut calculer la fermeture • X non candidat ssi supp(X)=min{supp(X\{m})|m X} (cle: non) • Support(X) ≤ Support-estimatif(X)
Exemple •Commence par 1-itemset FFC1: Calcul de support estimatif (S-E) ici |0| par defaut et support reel (S-R) • Elagage / minsup donne FC1 •Création de FFC2 à partir de FC1 -Tout élément de FFCk doit voir ces k sous-ensembles appartenir à FCk - Elimination des FFC2 non support valide et support estimatif=support reel (clé non)