Calculer efficacement les générateurs et les fermetures associées : l’algorithme Flake FRANÇOIS WEBER 22/06/2016
Présentation du problème
céréalesœufsbaconlaitbols Client 1xxx Client 2xx Client 3xxx Client 4xx Client 5xxx Client 6xxxx Transactions /objets Attributs/items Un itemset Le support de l’itemset
céréalesœufsbaconlaitbols Client 1xxx Client 2xx Client 3xxx Client 4xx Client 5xxx Client 6xxxx
céréalesœufsbaconlaitbols Client 1xxx Client 2xx Client 3xxx Client 4xx Client 5xxx Client 6xxxx
Conditions pour valider 1 règle A→B 2 seuils s et σ : supp(AUB)>s*NbClients supp(AUB)>σ*supp(A) Règles d’association, règles d’implication
Problème « Tous les clients qui achètent des céréales achètent aussi du lait et des bols » « Tous les clients qui achètent des céréales achètent aussi du lait » « Tous les clients qui achètent des céréales, du bacon et des œufs achètent aussi du lait et des bols » Problème de redondance, perte de lisibilité et de mémoire
Des classes d’équivalences
Des fermés Des générateurs
Présentation de l’algorithme
ABCDE 1xxx 2xxxx 3xxx 4xxx 5xx Minsup=1
{1,2,3,4,5} {2,4} {1,2,3,5} {1,2,3,4} {1,2,3}{4,5} {4}{1,2,3} {5} {1,2,3} {4} {2} {2,4} {2}
{1,2,3,4,5} {2,4} {1,2,3,5} {1,2,3,4} {1,2,3}{4,5} {4} {1,2,3} {5} {1,2,3} {4} {2} {2,4} {2} (Like D) (Like BC) (Like A) infrequent Non generator – the proper subset with same support is indecated below the node generator (Like AB)
{1,2,3,4,5} {2,4} {1,2,3,5}{1,2,3,4} {1,2,3}{4,5}
{1,2,3,4,5} {2,4} {1,2,3,5} {1,2,3,4} {1,2,3}{4,5}
{1,2,3,4,5} {2,4} {1,2,3,5} {1,2,3,4} {1,2,3}{4,5} {4}
{1,2,3,4,5} {2,4} {1,2,3,5} {1,2,3,4} {1,2,3}{4,5} {4}{1,2,3}
{1,2,3,4,5} {2,4} {1,2,3,5} {1,2,3,4} {1,2,3}{4,5} {4} {5}
{1,2,3,4,5} {2,4} {1,2,3,5} {1,2,3,4} {1,2,3}{4,5} {4} {5} {1,2,3}
{1,2,3,4,5} {2,4} {1,2,3,5} {1,2,3,4} {1,2,3}{4,5} {4} {5} {1,2,3}
{1,2,3,4,5} {2,4} {1,2,3,5} {1,2,3,4} {1,2,3}{4,5} {4} {5} {1,2,3} {4}
{1,2,3,4,5} {2,4} {1,2,3,5} {1,2,3,4} {1,2,3}{4,5} {4} {5} {1,2,3} {4} {2}
{1,2,3,4,5} {2,4} {1,2,3,5} {1,2,3,4} {1,2,3}{4,5} {4} {5} {1,2,3} {4} {2} {2,4}
{1,2,3,4,5} {2,4} {1,2,3,5} {1,2,3,4} {1,2,3}{4,5} {4} {5} {1,2,3} {4}{2}
{1,2,3,4,5} {2,4} {1,2,3,5} {1,2,3,4} {1,2,3}{4,5} {4} {5} {1,2,3} {4}{2} TIDSetGénérateursFermetureTIDSetGénérateursFermeture AA 45EE4CE-AEACE 123D-BCBCD5BE 1234CC2AD-ABABD 1235BB Faux !! {2,4}
{1,2,3,4,5} {2,4} {1,2,3,5} {1,2,3,4} {1,2,3}{4,5} {4} {5} {1,2,3} {4}{2} TIDSetGénérateursFermetureTIDSetGénérateursFermeture AAC 45EE4CE-AEACE 123D-BCBCD5BE 1234CC2AD-ABABD 1235BB Faux !!
Le problème de la fermeture
{1,2,3,4,5} {2,4} {1,2,3,5} {1,2,3,4} {1,2,3}{4,5} {4} {5} {1,2,3} {4}{2} TIDSetGénérateursFermetureTIDSetGénérateursFermeture AAC 45EE4CE-AEACE 123D-BCBCD5BE 1234CC2AD-ABABD 1235BB
{1,2,3,4,5} {2,4} {1,2,3,5} {1,2,3,4} {1,2,3}{4,5} {4} {5} {1,2,3} {4}{2} TIDSetGénérateursFermetureTIDSetGénérateursFermeture AAC 45EE4CE-AEACE 123D-BCBCD5BE 1234CC2AD-AB AB C D 1235BB
{1,2,3,4,5} {2,4} {1,2,3,5} {1,2,3,4} {1,2,3}{4,5} {4} {5} {1,2,3} {4}{2} TIDSetGénérateursFermetureTIDSetGénérateursFermeture AAC 45EE4CE-AEACE 123D-BCBCD5BE 1234CC2AD-ABABCD 1235BB
{A,C} {A,C,E} {B} {C} {E} {B,E} {A,B,C,D} {B,C,D}
Validité de flake
Le problème BCX CX Y ABZ AZ F
Le générateur canonique
{1,2,3,4,5} {2,4} {1,2,3,5} {1,2,3,4} {1,2,3}{4,5} {4} {5} {1,2,3} {4}{2} TIDSetGénérateursFermetureTIDSetGénérateursFermeture AAC 45EE4CE-AEACE 123D-BCBCD5BE 1234CC2AD-ABABCD 1235BB
{1,2,3,4,5} {2,4} {1,2,3,5} {1,2,3,4} {1,2,3}{4,5} {4} {5} {1,2,3} {4}{2} TIDSetGénérateursFermetureTIDSetGénérateursFermeture AAC 45EE4CE-AEACE 123D-BCBCD5BE 1234CC2AD-ABABCD 1235BB
Validité de flake
Version actuelle de flake Pendant la première passe : Calculer les générateurs canoniques Les conserver dans l’ordre croissant des tailles Deuxième passe : Passer en revue uniquement les générateurs canoniques, dans l’ordre croissant des tailles
ABC 1xx 2xx 3x 4x
ABC 1xx 2xx 3x 4x
B D C A
{1,2,3,4,5} {2,4} {1,2,3,5} {1,2,3,4} {1,2,3}{4,5} {4} {5} {1,2,3} {4}{2} TIDSetGénérateursFermetureTIDSetGénérateursFermeture AAC 45EE4CE-AEACE 123D-BCBCD5BE 1234CC2AD-ABABD 1235BB
{1,2,3,4,5} {2,4} {1,2,3,5} {1,2,3,4} {1,2,3}{4,5} {4} {5} {1,2,3} {4}{2} TIDSetGénérateursFermetureTIDSetGénérateursFermeture AAC 45EE4CE-AEACE 123D-BCBCD5BE 1234CC2AD-AB AB C D 1235BB