Základy vytěžování dat předmět A7Bb36vyd Vytěžování dat Filip Železný, Miroslav Čepek, Radomír Černoch, Jan Hrdlička katedra kybernetiky a katedra počítačů ČVUT v Praze, FEL Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Časté množiny Odkaz na výukové materiály: https://cw.felk.cvut.cz/doku.php/courses/a7b36vyd/moduly/start (oddíl 4) Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Vytěžování dat, přednáška 6: Vyhledávání častých množin Filip Železný Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Fakulta elektrotechnická, ČVUT 1 / 16 Časté množiny
Asociace Pokračujeme v metodách vytěžování bez učitele tedy modelování rozdělení PX, z něhož jsou generována data Připomínka: X = X 1 X 2... X n, kde X i je množina hodnot příznaku i Úloha: najít hodnoty nějaké podmnožiny příznaků, které se často objevují společně tj. jsou asociovány Příklad: X = příjem bydliště pohlaví úvěr Častá asociace např. příjem = vysoký & bydliště = Praha častá znamená, že pravděpodobnost P příjem,bydliště (vysoký, Praha) je vysoká 2 / 16 Časté množiny
Podpora asociace Podpora: podíl instancí, v nichž asociace platí, mezi všemi instancemi příjem bydliště pohlaví úvěr vysoký Praha M splácí vysoký Plzeň M splácí nízký Praha M nesplácí vysoký Praha Ž splácí střední Brno M splácí Asociace A = příjem = vysoký & bydliště = Praha má podporu 2/5 = 0.4. Zapisujeme podp(a) = 0.4 podp(a) je odhadem P příjem,bydliště (vysoký, Praha) 3 / 16 Časté množiny
Podpora asociace Všechny asociace s podporou alespoň 0.4 příjem vysoký vysoký nízký vysoký střední příjem vysoký vysoký nízký vysoký střední bydliště Praha Plzeň Praha Praha Brno bydliště Praha Plzeň Praha Praha Brno příjem bydliště 1. true (prázdná asociace) 4 / 16 Časté množiny
Asociace jako množiny Hledání asociací se uplatňuje zejm. v analýze transakcí ( analýze nákupních košíků ) Příznaky: položky sortimentu. Instance: obsah nákupního košíku. Hodnoty příznaků jsou binární {ano, ne}. pivo párky horčice pleny ano ne ne ano ne ano ano ne Zde místo např. pivo = ano & pleny = ano zapisujeme (a chápeme) asociaci jako množinu položek, např. {pivo, pleny} 5 / 16 Časté množiny
Princip monotonicity pivo párky horčice pleny ano ne ne ano ano ne ano ano 6 / 16 ne Časté množiny ano ano ne pivo párky horčice pleny ano ne ne ano ano ne ano ano ne ano ano ne ano ano ano ne ano ano ano ano pivo párky horčice pleny ano ne ne ano ano ne ano ano ne ano ano ne ano ano ano ne ano ano ano ano
Hledání častých množin položek algoritmem APRIORI Postupujeme z vyšších pater do nižších Prázdná množina je vždy častá. Kandidáti o patro níž: {A}, {B}, {C}, {D}. 7 / 16 Časté množiny
Algoritmus APRIORI Apriori: C 1 = množiny položek velikosti 1 L 1 = časté množiny z C 1 (podpora min_podp) i = 1 repeat i := i + 1 C i = Apriori-Gen(L i 1) L i := všechny časté množiny z C i {Vyžaduje průchod databází} until L i = L = L i, i return L Apriori-Gen(L i 1 ): C i = for dvojice množin položek M p, M q L i 1 do if se shodují v i 2 položkách then přidej M p M q do C i end if end for for množiny položek M C i do if jakákoliv podmnožina M o délce i 1 není v L i 1 then odstraň M z C i end if end for return C i 8 / 16 Časté množiny
Maximální množiny položek Častých množin může být velmi mnoho Výstup algoritmu je pak nepřehledý Možné zjednodušení výstupu: zachovat pouze maximální množiny Maximální množina: Je častá a žádná z jejích vlastních nadmnožin není častá 9 / 16 Časté množiny
Uzavřené množiny položek Množina častých množin může být redundantní Informace o všech častých množinách je implicitně obsažena v množině uzavřených častých množin Uzavřená množina: žádná její vlastní nadmnožina nemá stejnou podporu Každá maximální množina je uzavřená (obráceně nemusí platit) 10 / 16 Časté množiny
Maximální a uzavřené množiny časté množiny položek barevně (podpora alespoň 3 instance), maximální množiny červeně Transakce t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10 Položky a, d, e b, c, d a, c, e a, c, d, e a, e a, c, d b, c a, c, d, e b, c, e a, d, e 11 / 16 Časté množiny
Asociační pravidlo Pravidlo ve tvaru if Ant then Suc kde Ant a Suc jsou množiny položek nazývané antecedent resp. sukcedent. Pravidlo též zapisujeme jako Ant Suc Podpora asociačního pravidla R definována jako podp(ant Suc) = podp(ant Suc) Spolehlivost (confidence) asociačního pravidla R definována jako spol(ant Suc) = podp(ant Suc) podp(ant) 12 / 16 Časté množiny
Asociační pravidlo 13 / 16 Časté množiny
Hledání asociačních pravidel algoritmem APRIORI Hledáme pravidla Ant Suc, která jsou častá (tj. s podporou alespoň p) a spolehlivá (tj. se spolehlivostí alespoň s). Je-li pravidlo Ant Suc časté, tak množina položek (asociace) Ant Suc je častá. Nejprve tedy najdeme všechny časté množiny položek. Pro každou častou množinu položek M a každou její neprázdnou vlastní podmnožinu P M zkusíme, zda Pokud ano, tak pravidlo je časté a spolehlivé. podp(m) podp(p) P M \ P 14 / 16 Časté množiny
Hledání asociačních pravidel: příklad Hledáme asociační pravidla s podporou alespoň 0.1 a spolehlivostí alespoň 0.6. Právě 13% nákupních košíků obsahuje každou položku z množiny {párky, hořčice, pivo, otvírák} Množina je tedy častá. Vyberme nějakou její vlastní neprázdnou podmnožinu, např. Pravidlo {párky, hořčice} {párky, hořčice} {pivo, otvírák} má podporu 13%. Pokud navíc právě 19% nákupních košíků obsahuje párky i horčici, má pravidlo spolehlivost 13 19 > 0.6 a je tedy časté i spolehlivé. 15 / 16 Časté množiny
Algoritmus AR-Gen Vytvoří množinu asociačních pravidel ze zadané množiny L častých množin položek a zadaného parametru min_spol minimální spolehlivosti. AR-Gen: R := for M L do for P M, P do if podp(m)/podp(p) min_spol then R := R {P M \ P} end if end for end for return R 16 / 16 Časté množiny
Vytěžování dat, cvičení 8: Hledání množin častých položek a asociačních pravidel Jan Hrdlička Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Fakulta elektrotechnická, ČVUT 1 / 7 Asociační pravidla
Analýza nákupního koše Cílem této úlohy je zjistit, které produkty zákazníci kupují společně a z kterých produktů lze vytvořit asociační pravidla Jedná se o aplikaci úlohy Vyhledávání častých množin kterou znáte z přednášky. 2 / 7 Asociační pravidla
Dataset V matlabu načtěte soubor marketbasket.mat obsahující transakční databázi supermarketu vhodnou k analýze nákupního košíku. V daném souboru se nachází proměnné trandb a info. Proměnná trandb je transakční databáze v maticové booleanovské formě. Každý řádek je transakce - jeden nákupní košík jednoho zákazníka. Každý sloupec je jedna možná položka v košíku (item). Slovní popis těchto položek je v proměnné info. 3 / 7 Asociační pravidla
Apriori Stáhněte si apriorifpm.m, tato funkce vygeneruje množinu častých položek pro danou transakční databázi algoritmem apriori. Způsob použití funkce apriorifpm.m zjistíte příkazem help apriorifpm. Najděte množinu častých položek pro vámi zvolenou mininální relativní podporu. Tu odůvodněte. Nalezené množiny vypište do souboru pomocí funkce printfreqsets.m Mezivýsledek: Pro minimální relativní podporu rovnou 0.02 vám má vyjít 1302 častých množin. 4 / 7 Asociační pravidla
Srovnání položek Spusťte apriorifpm pro množinu položek lexikálně srovnanou sestupně podle častosti výskytu a srovnanou vzestupně. Porovnejte časy obou běhů. Výsledek popište a zdůvodněte. 5 / 7 Asociační pravidla
Asociační pravidla Použijte funkci associationrules.m pro vygenerování asociačních pravidel. Způsob použití funkce apriorifpm.m zjistíte příkazem help associationrules. Vygenerujte všechna asociační pravidla pro vámi zvolenou minimální relativní spolehlivost. Tu odůvodněte. Mezivýsledek: Pro minimální relativní spolehlivost rovnou 0.7 (a dříve danou minimální relativní podporu 0.02) vám vyjde 480 asociačních pravidel. Nalezená pravidla vypište do souboru pomocí funkce printrules.m 6 / 7 Asociační pravidla
Faktické náležitosti protokolu Váš protokol by měl obsahovat: Časté množiny položek pro vámi vybranou minimalní relativní podporu, minimální relativni podporu, kterou jste použili, její zdůvodnění Časy běhů funkce apriorifpm pro obě lexikální řazení, váš komentář k časům Asociační pravidla pro vámi vybranou minimalní relativní spolehlivost, minimální relativní spolehlivost, kterou jste použili, její zdůvodnění 7 / 7 Asociační pravidla