1 Asociačné pravidlá OBSAH PREDNÁŠKY Základné pojmy Asociačné pravidlá a ich zaujímavosť Princíp dolovania asociačných pravidiel Algoritmy používané na hľadanie frekventovaných vzorov a asociačných pravidiel Ďalšie mierky zaujímavosti asociačných pravidiel Ďalšie rozšírenia algoritmov pre hľadanie frekventovaných vzorov Úvod Dolovanie asociačných vzorov, resp. asociačných pravidiel znamená: Hľadanie frekventovaných a zaujímavých asociácií (korelácií alebo kauzálnych vzťahov) medzi skupinou atribútov v dátach Pravidlá vo forme Telo Hlava [podpora, spoľahlivosť]. Tento problém je klasicky definovaný v kontexte transakčných dát zo supermarketu, v ktorých sa hľadajú často spolu nakupované skupiny tovarov (frequent itemsets, frequent patterns) Avšak tento problém bol zovšeobecnený na mnohé iné typy dát, dokonca aj na dáta so závislosťami 2 Aplikácie Analýza nákupného košíka - teda klasický problém z ktorého pochádza aj terminológia: transakcie, (frekventovaná) položková množina pre podporu rozhodovacích procesov v obchode (krížový marketing, rozmiestnenie tovarov v obchode, návrh katalógov a pod.) kupuje(x, pampersky ) kupuje(x, pivo ) [0.5%, 60%] resp. jednoduchšie pampersky pivo [0.5%, 60%] Dolovanie v textoch hľadanie často sa spolu vyskytujúcich slov (príp. identifikácia fráz) (data, mining), (business, intelligence, analytics) Zovšeobecnenie pre dáta so závislosťami, napr. časové rady, sekvenčné dáta (napr. webové logy)... 3 Základné pojmy (1) Nech databáza Τ obsahuje množinu n transakcií T 1 až T n pričom každá transakcia T i z Τ predstavuje množinu položiek: T i U (U je množina všetkých položiek v databáze) T i reprezentuje jeden nákup (obsah nákupného košíka) a Τ celú databázu, t.j. všetky nákupy napr. za určité časové obdobie U = {i 1,..., i d } je množina literálov (reprezentujúcich názvy jednotlivých tovarov), nazývaných položky (items) Každá transakcia môže byť reprezentovaná ako multidimenzionálny záznam obsahujúci d binárnych hodnôt (d = U ) Hodnota j-teho atribútu je 1, ak daná transakcia obsahuje položku i j Množina položiek (itemset) X I sa nazýva k-položková množina (k-itemset) ak obsahuje práve k položiek (záznam s k nenulovými prvkami) 4 Základné pojmy (2) Z výpočtového hľadiska je výhodné, ak sú položky v jednotlivých transakciách abecedne usporiadané Teda položkovú množinu X pozostávajúc z položiek x 1,..., x k možno potom zapísať ako X = (x 1,..., x k ), pričom x 1... x k Pre množinu položiek X I je podpora položkovej množiny X definovaná ako podiel tých transakcií v danej databáze D, ktoré obsahujú X Ide teda o relatívnu početnosť tých transakcií, v ktorých boli spoločne nakúpené položky z X 5 Príklad transakčnej databázy D tid Množina položiek Binárna reprezentácia 1 chlieb, maslo, mlieko 101100 2 jogurt, mlieko, vajíčka 010101 3 chlieb, jogurt, mlieko, syr 110110 4 jogurt, mlieko, vajíčka 010101 5 jogurt, mlieko, syr 010110 T 1 = {chlieb, maslo, mlieko}, T 5 = {jogurt, mlieko, syr} i 1 = chlieb, i 2 = jogurt, i 3 = maslo, i 4 = mlieko, i 5 = syr, i 6 = vajíčka V binárnej reprezentácii napr. T 1 = 101100, T 4 = 010101 X = {jogurt, mlieko} má podporu 4, Z = {mlieko} má podporu 5 Y = {mlieko, vajíčka} má podporu 2, V = {syr} má tiež podporu 2
2 Frekventované položkové množiny Definícia úlohy: Pre danú množinu transakcií T, kde každá transakcia T i je podmnožinou U, urči všetky podmnožiny I také, že ich podpora je väčšia ako zadaný prah minimálnej podpory minsup (minimal support) Ak v našom príklade napr. stanovíme minsup = 2, potom túto hodnotu spĺňanú napr. podmnožiny: {chlieb, mlieko} {mlieko, vajíčka}, nie však napr. {chlieb, jogurt}, ktorá má podporu 1 tid Množina položiek Binárna reprezentácia 1 chlieb, maslo, mlieko 101100 2 jogurt, mlieko, vajíčka 010101 3 chlieb, jogurt, mlieko, syr 110110 4 jogurt, mlieko, vajíčka 010101 5 jogurt, mlieko, syr 010110 Vlastnosť monotónnosti podpory (Support Monotonicity Property) Podpora každej podmnožiny J položkovej množiny I je minimálne rovná (alebo väčšia) podpore množiny I, t.j.: z tejto podmienky vyplýva tá nasledujúca: (Downward Closure Property) Každá podmnožina frekventovanej položkovej množiny je frekventovaná (nazývaný tiež princíp Apriori) Ide o algoritmicky veľmi dôležitú vlastnosť, ktorá sa využíva ako ohraničenie v procese hľadania frekventovaných položkových množín. 7 8 Maximálne frekventované položkové množiny (Maximal frequent itemset) Frekventovaná množina položiek je maximálna pre daný prah minimálnej podpory minsup vtedy, ak žiadna jej nadmnožina nie je frekventovaná. Maximálne frekventované množiny položiek možno preto považovať za zhustenú reprezentáciu všetkých frekventovaných položiek, v ktorej už ale chýba informácia o podpore jednotlivých podmnožín maximálne frekventovaných množín položiek Ďalšou zaujímavou vlastnosťou položkových množín je, že sa dajú reprezentovať zväzom položkových množín, ktorý obsahuje všetkých 2 I položkových množín. 9 Príklad zväzu položkových množín Prevzaté z: Charu C. Aggarwal: Data Mining: The Textbook. Springer, 2015 Základné pojmy (3) Frekventované položkové množiny možno použiť na generovanie tzv. asociačných pravidiel. Asociačné pravidlo je implikácia vo forme X Y, pričom X a Y sú dve disjunktné položkové množiny, t.j. X U, Y U a X Y =, pričom platí, že: 1. Podpora položkovej množiny X Y je minimálne minsup 2. Spoľahlivosť pravidla X Y je minimálne minconf Spoľahlivosť conf asociačného pravidla X Y v množine T je podmienená pravdepodobnosť toho, že transakcia T i obsahuje všetky položky množiny X Y za podmienky, že transakcia T i obsahuje všetky položky množiny X, t.j.: Podpora a spoľahlivosť Majme asociačné pravidlo: Zákazník kúpil pampersky zákazník kúpil pivo Zákazník kúpil oboje Zákazník kúpil pivo Všetky nákupy Zákazník kúpil pampersky podpora (s) je pravdepodobnosť výskytu oboch tovarov súčasne, t.j. sup = p(pampersky a pivo) spoľahlivosť (c) je podmienená pravdepodobnosť, že zákazník kúpil pivo, ak kúpil aj pampersky, t.j. p(pampersky a pivo) conf = p(pampersky) 11 12
3 ID transakcie Asociačné pravidlo (príklad) 2000 A,B,C Kúpené položky Min. podpora 50% Min. spoľahlivosť 50% 1000 A,C Frekventované množiny položiek Podpora 4000 A,D {A} 75% 5000 B,E,F {B} 50% Pre pravidlo A C: podpora = podpora({a, C}) = 2 / 4 = 0,5 (50%) {C} {A,C} 50% 50% spoľahlivosť = podpora({a, C})/podpora({A}) = 2 / 3 = 0,66 (66.6%) lift = podpora({a, C})/(podpora({A})*podpora({C})) = 0,5/(0,66*0,5) = 1,5 Pre pravidlo C A: podpora = podpora({c, A}) = 2 / 4 = 50% spoľahlivosť = podpora({c, A})/podpora({C}) = 2 / 2 = 100% lift = podpora({c, A})/(podpora({C})*podpora({A})) = 0,5/(0,5*0,66) = 1,5 13 Princíp dolovania asociačných pravidiel Celkový rámec pre generovanie asociačných pravidiel pozostáva z 2 fáz, zodpovedajúcich dvom kritériám, ktoré podľa definície musia byť splnené: 1. V prvej fáze sa generujú všetky frekventované množiny položiek spĺňajúce prah minimálnej podpory minsup. 2. V druhej fáze sa generujú také asociačné pravidlá z frekventovaných množín položiek, ktoré spĺňajú podmienku minimálnej spoľahlivosti minconf. Prvá fáza je výpočtovo omnoho náročnejšia Druhá fáza je relatívne priamočiara 14 1. fáza: Dolovanie frekventovaných množín položiek (1) Algoritmy hľadania frekventovaných vzorov: 1. hľadajú najprv kandidátov (prehľadávaním zväzu položkových množín) 2. a následne počítajú podporu kandidátov (prejdením transakčnej databázy) Lepšiu efektivitu tohto postupu možno dosiahnuť: 1. Redukciou veľkosti priestoru prehľadávania (orezaním kandidátnych podmnožín), napr. využitím downward closure property (ako to robí aj algoritmus Apriori). 2. Efektívnejším počítaním podpory orezaním transakcií u ktorých je jasné, že nie sú relevantné pre počítanie podpory daného kandidáta (napr. projekcie dát v enumeračnom strome). 3. Využitím kompaktných údajových štruktúr na reprezentáciu kandidátov alebo transakčnej databázy, ktoré umožňujú efektívny výpočet podpory (napr. vertikálna reprezentácia dát). 15 1. Redukcia veľkosti priestoru prehľadávania Dá sa dosiahnuť redukciou veľkosti množiny kandidátov na frekventované položkové množiny, využívajúc nasledovnú vlastnosť: Každá podmnožina frekventovanej množiny položiek musí byť tiež frekventovaná! (tzv. princíp Apriori, resp. downward closure property) Napr. ak {ABC} je frekventovaná množina položiek, tak potom aj {A}, {B}, {C}, {AB}, {AC}, {BC} musia byť všetky frekventované množiny položiek. 16 Algoritmus Apriori Apriori (Databáza T, Float minsup) F 1 := {frekventované jednopoložkové množiny z T}; k := 1; while F k do C k+1 := GenerovanieKandidátovApriori(F k ); // pozri slide č.19 for each Transakciu T i T do CT := Podmnožina(C k+1, T i ); // všetci kandidáti z C k+1, ktorí // sú obsiahnutí v transakcii T i for each Kandidát c CT do c.count++; F k+1 := {c C k+1 c.count / T minsup}; k = k + 1; return ; Generovanie kandidátnych množín položiek GenerovanieKandidátovApriori(F k ) insert into C k+1 // 1. krok spájanie select p.item 1, p.item 2,... p.item k, q.item k from F k p, F k q where (p.item 1 = q.item 1 ),..., (p.item k-1 = q.item k-1 ), (p.item k < q.item k ); // 2. krok orezávanie for each položková_množina c C k+1 do for each k-položková podmnožina s z c do if s F k then vymaž c z C k+1 ; 17 18
4 Generovanie kandidátov príklad p F k = (1 2 3) Spájanie výsledok C k+1 = (1 2 3 4) q F k = (1 2 4) Nech je daná množina trojprvkových frekventovaných množín F 3 = {(1 2 3), (1 2 4), (1 3 4), (1 3 5), (2 3 4)} Aplikovaním prvého kroku spájania z nej možno získať množiny kandidátov veľkosti 4: C 4 = {(1 2 3 4), (1 3 4 5)} Z tejto množiny však potom druhý krok orezávania odstráni množinu (1 3 4 5), nakoľko jej podmnožina (1 4 5) sa nenachádza v F 3, a teda nie je frekventovaná Výsledná množina kandidátnych štvorprvkových množín položiek bude teda C 4 = {(1 2 3 4)} Algoritmus Apriori (iný zápis) 1. 2. 3. Prevzaté z: Charu C. Aggarwal: Data Mining: The Textbook. Springer, 2015 19 20 Apriori príklad (1) Databáza D p.množina s F p. množina s TID položky C {1} 2 1 1 {1} 2 100 1 3 4 {2} 3 {2} 3 200 2 3 5 Prejdi D {3} 3 {3} 3 300 1 2 3 5 {4} 1 {5} 3 400 2 5 {5} 3 C 2 p. množina s F 2 p. množina s {1 2} 1 {1 3} 2 {1 3} 2 {2 3} 2 {1 5} 1 {2 5} 3 {2 3} 2 {3 5} 2 {2 5} 3 {3 5} 2 C 3 p. množina {2 3 5} C 2 Prejdi D Prejdi D F 3 p. množina s {2 3 5} 2 p. množina {1 2} {1 3} {1 5} {2 3} {2 5} {3 5} 21 2. fáza: Generovanie asociačných pravidiel (1) Teraz stačí pre každú podmnožinu A frekventovanej množiny X preskúmať spoľahlivosť potenciálneho asociačného pravidla A (X A) K tomu stačí poznať podporu všetkých frekventovaných množín (ktoré predtým zistil algoritmus Apriori), lebo: conf(a (X A)) = Ale aj generovanie všetkých možných pravidiel typu A (X A) je zbytočne neefektívne Ak napr. takéto pravidlo nespĺňa podmienku minimálnej spoľahlivosti, potom žiadne pravidlo typu A (X A ), kde A A nemôže spĺňať podmienku minimálnej spoľahlivosti, lebo sup(a ) sup(a) 22 Generovanie asociačných pravidiel (2) Táto vlastnosť sa nazýva monotónnosť spoľahlivosti (Confidence Monotonicity): Nech X 1, X 2 a I sú položkové množiny také, že platí X 1 X 2 I. Potom spoľahlivosť pravidla X 2 I - X 2 je minimálne taká, ako spoľahlivosť pravidla X 1 I - X 1 t.j. Vyplýva to priamo z vlastnosti monotónnosti podpory Napr. {chlieb,maslo} {mlieko} a {chlieb} {maslo,mlieko} druhé pravidlo má rovnakú podporu, ale jeho spoľahlivosť určite nebude väčšia ako spoľahlivosť prvého pravidla Toto možno využiť pri generovaní pravidiel tým, že sa začne od najväčších podmnožín a pokračuje sa ich zmenšovaním vždy iba dovtedy, kým je splnená podmienka minconf 23 1. fáza: Algoritmy založené na enumeračnom strome (1) Tieto algoritmy generujú kandidátne množiny pomocou stromovej štruktúry známej ako enumeračný (lexikografický) strom, ktorý je podgrafom zväzu položkových množín. Ide o abstraktnú hierarchickú reprezentáciu položkových množín, zachovávajúcu lexikografické usporiadanie položiek. Táto štruktúra je využívaná na systematický prieskum kandidátnych množín bez opakovania. Zväz poskytuje veľa ciest od prázdnej množiny, ale enumeračný strom iba 1. 24
5 Algoritmy založené na enumeračnom strome (2) Väčšina algoritmov založených na enumeračnom strome (enumeration tree algorithms) vytvára enumeračný strom frekventovaných položkových množín nejakou preddefinovanou stratégiou. 1. 2. 3. r Algoritmy založené na enumeračnom strome (3) Skoro všetky algoritmy na hľadanie frekventovaných vzorov (vrátane algoritmu Apriori) možno interpretovať ako variácie a rozšírenia uvedeného algoritmu. Veľká variabilita existuje najmä čo sa týka: 1. stratégie rastu enumeračného stromu 2. špecifickej údajovej štruktúry použitej pre výpočet podpory (napr. hashovacie stromy) Voľba medzi rôznymi možnosťami 1. a 2. záleží na kompromise, ktorý chceme dosiahnuť vzhľadom na: 1) výpočtovú efektívnosť algoritmu 2) priestorovú zložitosť algoritmu 3) potrebné prístupy na disk Prevzaté z: Charu C. Aggarwal: Data Mining: The Textbook. Springer, 2015 25 26 Algoritmy založené na enumeračnom strome (4) Stratégie rastu do šírky (breadth-first strategies) zodpovedajú preskúmaniu naraz všetkých uzlov na jednej úrovni stromu. Táto stratégia môže byť vhodná pre dáta uložené na disku, lebo sa expandujú všetky uzly na jednej úrovni naraz a teda aj výpočet ich podpory prebehne naraz, jedným prechodom databázou. Stratégie rastu do hĺbky vyberajú vždy jeden uzol, a to ten, ktorý je v najhlbšej vetve aktuálneho enumeračného stromu Tieto stratégie sú zas efektívnejšie pri hľadaní dlhých asociačných vzorov, ktoré tieto stratégie nájdu rýchlejšie (to je dobré napr. pre maximal pattern mining ale aj v niektorých projection-based algorithms). 27 Projekcie dát v enumeračnom strome TreeProject je skupina metód, ktoré využívajú rekurzívne projekcie transakcií (jednotlivých častí dát) smerom dole v enumeračnom strome. Cieľom týchto rekurzívnych projekcií je opätovne využívať prácu pri počítaní podpory, ktorá už bola vykonaná v danom uzle enumeračného stromu, pre všetkých jeho nasledovníkov (potomkov daného uzla). Základná myšlienka je, že T(P) obsahuje minimálnu časť transakčnej databázy, ktorá je relevantná pre počítanie podpory všetkých frekventovaných množín zodpovedajúcich podstromu P a to na základe odstránenia nerelevantných transakcií a položiek pri procese počítania na predchádzajúcich (vyšších) úrovniach stromu. 28 1. fáza: Dolovanie frekventovaných množín položiek (1) Algoritmy hľadania frekventovaných vzorov: 1. hľadajú najprv kandidátov (prehľadávaním zväzu položkových množín) 2. a následne počítajú podporu kandidátov prejdením transakčnej databázy Lepšiu efektivitu tohto postupu možno dosiahnuť: 1. Redukciou veľkosti priestoru prehľadávania (orezaním kandidátnych podmnožín), napr. využitím downward closure property (ako to robí aj algoritmus Apriori). 2. Efektívnejším počítaním podpory orezaním transakcií u ktorých je jasné, že nie sú relevantné pre počítanie podpory daného kandidáta (napr. projekcie dát v enumeračnom strome). 3. Využitím kompaktných údajových štruktúr na reprezentáciu kandidátov alebo transakčnej databázy, ktoré umožňujú efektívny výpočet podpory (napr. vertikálna reprezentácia dát). 29 2. Efektívnejší výpočet podpory Príklad algoritmu využívajúceho projekcie dát v enumeračnom strome: 1. 2. 3. 30
6 tid 3. Využitie kompaktných údajových štruktúr Vertikálna reprezentácia transakčných dát: každá položka je reprezentovaná zoznamom transakcií, v ktorých sa vyskytla presnejšie identifikátorov transakcií (tids) Možno si to predstaviť ako použitie transponovanej matice binárnej reprezentácie transakčných dát (stĺpce sú transformované na riadky) Množina položiek Binárna reprezentácia 1 chlieb, maslo, mlieko 101100 2 jogurt, mlieko, vajíčka 010101 3 chlieb, jogurt, mlieko, syr 110110 4 jogurt, mlieko, vajíčka 010101 5 jogurt, mlieko, syr 010110 položka Množina tids Binárna reprezentácia chlieb {1,3} 10100 jogurt {2,3,4,5} 01111 maslo {1} 10000 mlieko {1,2,3,4,5} 11111 syr {3,5} 00101 vajíčka {2,4} 01010 31 Algoritmy využívajúce vertikálnu reprezentáciu dát Prienik tid zoznamov dvoch položiek dá nový tid zoznam, ktorého dĺžka zodpovedá podpore danej 2-položkovej množiny atď. Napr. tid zoznam položky mlieko je {1,2,3,4,5} a tid zoznam položky jogurt {2,3,4,5}. Ich prienikom je tid zoznam {2,3,4,5} dĺžky 4, čo je zároveň podpora 2-položkovej množiny { jogurt, mlieko } Preferované (kvôli rýchlosti) je porovnávanie kratších zoznamov tid. Tie zodpovedajú viacpoložkovým množinám k-itemsets. Tento prístup sa nazýva rekurzívny výpočet prieniku tid zoznamov. Príklad vertikálnej verzie algoritmu Apriori využívajúceho zoznamy tid je na nasledujúcej strane. 32 Vertikálna verzia algoritmu Apriori 1. 2. 3. Prevzaté z: Charu C. Aggarwal: Data Mining: The Textbook. Springer, 2015 33 Alternatívne modely: ďalšie mierky zaujímavosti Doteraz uvedené algoritmy sú založené na frekvencii výskytu jednotlivých položiek, čo nemusia byť pre každú aplikáciu tie najzaujímavejšie vzory. Napr. {mlieko} sa vyskytuje vo všetkých transakciách, takže pre akúkoľvek množinu položiek X bude mať pravidlo X => mlieko spoľahlivosť 100% Preto je niekedy žiaduce navrhnúť také mierky zaujímavosti, ktoré sa prispôsobia hodnotám podpory jednotlivých položiek. Takéto prispôsobenie je obzvlášť potrebné v prípade dolovania negatívnych vzorov, kde sa využívajú tzv. bitovo symetrické mierky Napr. podpora položkovej množiny {mlieko,maslo} je veľmi odlišná od podpory množiny { mlieko, maslo}, kde znamená negáciu. Na druhej strane korelačný koeficient je rovnaký v oboch prípadoch. Mierky spĺňajúce túto podmienku sa nazývajú bitovo symetrické, pretože 1 a 0 v binárnej reprezentácii sú spracovávané rovnako. 34 Bitovo symetrické mierky (1) Problémom bitovo symetrických mierok zaujímavosti je, že downward closure property vo všeobecnosti nie je splnená, čo spôsobuje nárast zložitosti výpočtu. 1. Pearsonov korelačný koeficient medzi dvojicou náhodných premenných X a Y je: V prípade analýzy nákupného košíka sú X a Y binárne premenné odrážajúce ne/výskyt tovarov i, resp. j v nákupných košíkoch z databázy. Ich koreláciu možno odhadnúť nasledovne: Hodnoty sú z [-1,1] 0 pre nekorelované 35 Bitovo symetrické mierky (2) 2. Mierka 2 je ďalšou bitovo symetrickou mierkou. Pre množinu k binárnych náhodných premenných (položiek) označenú X, existuje 2 k možných stavov. Nech O i sú pozorované a E i očakávané hodnoty podpory stavu i, potom: Hodnota okolo 0 indikuje štatistickú nezávislosť, hodnoty sú nezáporné (vieme teda určiť len intenzitu závislosti). 3. Pomer zaujímavosti (Interest ratio) množiny položiek {i 1 i k } označovaný I({i 1 i k }) je definovaný nasledovne: Hodnoty nad 1 indikujú pozitívnu koreláciu. V niektorých prípadoch môže byť zavádzajúci (1 výskyt vo veľkej DB). Pre k = 2 táto metrika zodpovedá metrike lift 36
7 Symetrické mierky spoľahlivosti (1) Tradičná mierka spoľahlivosti (confidence) je asymetrická medzi ľavou a pracou stranou asociačného pravidla. Existujú však aj symetrické mierky, ktoré môžu nahradiť tradičnú dvojicu podpora/spoľahlivosť jednou veličinou. Nech X a Y sú dve položkové množiny. Symetrické mierky zaujímavosti možno odvodiť ako vhodnú funkciu dvoch hodnôt, a síce spoľahlivosti pravidla X => Y a spoľahlivosti opačného pravidla Y => X. Možno použiť napr.: Minimum (nie je vhodné, ak frekvencia X alebo Y je veľmi malá) Maximum (nie je vhodné, ak frekvencia X alebo Y je veľmi veľká) Priemer sa ukazuje ako najvhodnejší Geometrický priemer zodpovedá kosínusovej podobnosti (ďalej) Opäť tu ale nie je splnená downward closure property Symetrické mierky spoľahlivosti (2) 1. Kosínusový koeficient sa obvykle aplikuje na riadky (napr. podobnosť dokumentov vo vektorovom modeli), t.j. na transakcie. Ale je možné ho aplikovať aj na stĺpce, na určenie podobnosti položiek i a j: 2. Jaccardov koeficient bol spomínaný na minulej prednáške ako mierka podobnosti pre binárne a množinovo-orientované dáta. Nakoľko tid zoznamy položiek možno chápať ako množiny, potom pre dvojicu položiek i a j so zodpovedajúcimi tid zoznamami S 1 a S 2 : resp. pre skupinu k položiek: 37 38 Symetrické mierky spoľahlivosti (3) 3. Kolektívna sila (collective strength) C(I) položkovej množiny je definovaná pomocou tzv. miery narušenia (violation rate). Položková množiny I je narušená v danej transakcii, ak sa v nej niektoré položky vyskytujú, ale niektoré nie (tzv. bad event ). Potom C(I) možno chápať takto: Položková množina I je silne kolektívna na úrovni s, ak spĺňa nasledovné podmienky: 1. Kolektívna sila C(I) položkovej množiny I je aspoň s. 2. Vlastnosť uzáveru (closure property): Kolektívny sila C(J) každej podmnožiny J množiny I je aspoň s. Dolovanie negatívnych vzorov V mnohých aplikáciách je potrebné určiť vzory medzi vyskytujúcimi sa položkami alebo tými chýbajúcimi. Práve nevýskyt položky (položiek) v transakciách sa označuje ako negatívny vzor. V prípade dolovania negatívnych vzorov je potrebné používať bitovo symetrické mierky, ako napr. korelačný koeficient, 2, pomer zaujímavosti (interest ratio)... Avšak mnohé z týchto mierok sú ťažko použiteľné v praxi, lebo nespĺňajú downward closure property. Iba niektoré túto podmienku spĺňajú, konkrétne: Jaccardov koeficient a kolektívna sila (collective strength) 39 40 Užitočné meta-algoritmy Meta-algoritmus je algoritmus ktorý používa iný algoritmus ako podprogram. Dva typy meta-algoritmov sú typické pre dolovanie asociačných vzorov: 1. Vzorkovanie za účelom zvýšenia efektívnosti algoritmov hľadania asociačných vzorov. 2. Predspracovanie a/alebo dodatočné spracovanie s cieľom aplikovať algoritmus na iný typ použitia (napr. pre iný typ dát, ako kvantitatívne alebo kategorické dáta viď. ďalej). 41 Vzorkovanie Keď je transakčná databáza veľká, nemôže byť uložená do operačnej pamäti počítača, čo veľmi komplikuje prácu algoritmom dolovania asociačných vzorov. Mnohé algoritmy založené na prehľadávaní enumeračného stromu do hĺbky môžu mať vážny problém, keďže potrebujú mať náhodný prístup k transakciám v databáze. Vzorkovaním je však možné aplikovať mnohé algoritmy iba na časť dát pôvodnej databázy. Pritom ale vznikajú dve komplikácie: 1. False positives: Vzory, ktoré spĺňajú stanovený prah podpory na vzorke, ale nie v celej databáze. 2. False negatives: Vzory, ktoré síce nespĺňajú stanovený prah podpory na vzorke, ale spĺňajú ho v celej databáze. Prvý typ chýb je jednoduchší, lebo ich možno odstrániť jediným prechodom databázou na disku. Druhý typ chýb možno akurát pravdepodobnostne obmedziť znížením stanoveného prahu minimálnej podpory pre vzorku. 42
8 Hierarchické asociačné pravidlá V praktických aplikáciách u jednoduchých asociačných pravidiel položky v transakciách zodpovedajú obvykle jednotlivým tovarom na úrovni ich čiarového kódu Vo všeobecnosti asociačné pravidlá s viacerými položkami na úrovni čiarových kódov dosahujú len veľmi nízke hodnoty podpory a nevedú k nájdeniu žiadnych skutočne využiteľných výsledkov Často ale v praktických aplikáciách sú k dispozícii aj taxonómie jednotlivých položiek (is-a hierarchie), ktoré zoskupujú položky do hierarchických skupín Tieto taxonómie je možné využiť pre hľadanie asociačných pravidiel na vyššej úrovni všeobecnosti, t.j. medzi celými skupinami položiek Takéto asociačné pravidlá bývajú nielen zaujímavejšie, ale často majú aj väčšiu podporu 43 Príklad taxonómie položiek zo skupín odevy a obuv odevy obuv vrchné odevy... košele mestská obuv... bundy... nohavice turistické topánky... športová obuv lyžiarky Asociačné pravidlo môže pozostávať z artiklov na rôznych úrovniach taxonómie. Napr. sa môže objaviť pravidlo vrchné odevy športová obuv s dostatočnou podporou, ak sa pomerne často spolu nakupujú bundy s turistickými topánkami a lyžiarske nohavice s lyžiarkami, aj keď tieto dve asociácie samostatne nedosahujú prah minimálnej podpory 44 Príklad daná transakčná databáza Transakcia 1 košeľa Nakúpené položky 2 bunda, turistické topánky 3 lyžiarske nohavice, lyžiarky 4 mestská obuv 5 mestská obuv 6 bunda odevy obuv vrchné odevy... košele mestská obuv... bundy... nohavice športová obuv turistické topánky... lyžiarky 45 Príklad na hierarchické asociačné pravidlá Skupina položiek {odevy} podpora 4 zo 6 transakcií v D, t.j. 67% Skupiny položiek {obuv} podpora 4 (transakcie 2, 3, 4, 5) zo 6 transakcií v D, t.j. 67% Skupina položiek {odevy, obuv} podpora 2 (transakcie 2 a 3) zo 6 transakcií v D, t.j. 33% Asociačné pravidlo obuv odev podpora 2 transakcie zo 6 v D, t.j. 33% spoľahlivosť 2 transakcie (obsahujúce obuv aj odevy) zo 4 (obsahujúce obuv), t.j. 50% lift = 0,33 / (0,67*0,67) = 0,74 < 1 Asociačné pravidlo športová obuv odev podpora 2 transakcie zo 6 v D, t.j. 33% spoľahlivosť 2 transakcie (obsahujúce športovú obuv aj odevy) z 2 (obsahujúce športovú obuv), t.j. 100% lift = 0,33 / (0,33*0,67) = 1,49 46 Kvantitatívne asociačné pravidlá (1) Ako už vieme, transakčnú databázu je možné vždy previesť na jednoduchú boolovskú databázu, v ktorej jednotlivé atribúty vlastne zodpovedajú položkám vyskytujúcim sa v transakčnej databáze a nadobúdajú hodnoty 0 alebo 1 Transakcia Nakúpené položky 1 chlieb, káva, mlieko, koláč 2 káva, mlieko, koláč 3 chlieb, maslo Transakcia chlieb maslo káva mlieko koláč 1 1 0 1 1 1 2 0 0 1 1 1 3 1 1 0 0 0 47 Kvantitatívne asociačné pravidlá (2) Cieľom je prispôsobiť algoritmus ktorý funguje pre hľadanie asociačných pravidiel v boolovských databázach (teda transakčné dáta) na zložitejšie dátové typy (tzv. kvantitatívne asociačné pravidlá). Hlavná myšlienka spočíva v tom, že sa databázy s numerickými a kategorickými atribútmi transformujú tak, aby bolo možné použiť podobný postup ako pre boolovské databázy Pritom sa najprv numerické a kategorické atribúty transformujú na boolovské Symbolický alebo numerický atribút A s niekoľko málo diskrétnymi hodnotami w 1,..., w k možno transformovať na k boolovských atribútov A 1,..., A k Numerické atribúty s veľkým rozsahom hodnôt sa najprv diskretizujú a ďalší postup transformácie je potom rovnaký ako pre kategorické atribúty 48
9 ID záznamu Príklad ID záznamu vek stav počet áut 1 23 slobodný 0 2 38 ženatý 2 vek <20..29> vek <30..39> slobodný ženatý 0 áut 1 auto 2 autá 1 1 0 1 0 1 0 0 2 0 1 0 1 0 0 1 49 Postup pri objavovaní kvantitatívnych asociačných pravidiel (1) 1. Pre každý numerický atribút vykonať vhodnú diskretizáciu 2. Transformácia záznamov pôvodnej databázy na novú množinu záznamov (kategorické a diskretizované numerické na binárne atribúty) 3. Určenie podpory Najprv pre každý pár atribút-hodnota Susediace hodnoty pôvodných numerických atribútov sa potom zlučujú do spoločných intervalov dovtedy, kým podpora novovzniknutých intervalov neprekročí používateľom zadanú minimálnu hodnotu podpory minsup Tieto sa potom stávajú frekventovanými jednoprvkovými množinami (frekventované kvantitatívne položky) 50 Postup pri objavovaní kvantitatívnych asociačných pravidiel (2) 4. Nájdenie všetkých frekventovaných kvantitatívnych množín položiek napr. pomocou algoritmu Apriori 5. Určenie kvantitatívnych asociačných pravidiel rovnakým postupom ako pri jednoduchých asociačných pravidlách 6. Odstránenie tých pravidiel, ktorých spoľahlivosť je menšia ako používateľom zadaná minimálna hodnota 51 Príklad ID záznamu vek stav počet áut 100 23 slobodný 1 200 25 ženatý 1 300 29 slobodný 0 400 34 ženatý 2 500 38 ženatý 2 Kategorický atribút stav má len dve hodnoty, takže je možné ho transformovať na celočíselný atribút s hodnotami 1 (ženatý) a 2 (slobodný) Rozsah hodnôt numerického atribútu vek možno rozdeliť na 4 disjunktné intervaly a priradiť im po sebe idúce celé čísla zachovávajúc poradie nasledovne: intervalu hodnôt <20..24> bude zodpovedať hodnota 1 intervalu <25..29> hodnota 2 intervalu <30..34> hodnota 3 intervalu <35..39> hodnota 4 Numerický atribút počet áut nadobúda len 3 rôzne hodnoty, ktoré už sú po sebe idúce celé čísla, takže nie je nutné ho transformovať 52 Transformovaná databáza ID 20..24 25..29 30..34 35..39 slobodný ženatý 0 áut 1 auto 2 autá 1 0 0 0 1 0 0 1 0 100 0 1 0 0 0 1 0 1 0 200 0 1 0 0 1 0 1 0 0 300 0 0 1 0 0 1 0 0 1 400 0 0 0 1 0 1 0 0 1 500 1 2 1 1 2 3 1 2 2 3 2 2 3 3 2 Hľadanie asociačných pravidiel Frekventované kvantitatívne množiny položiek: Množina položiek Podpora (<vek:20..29>) 3 (<vek:30..39>) 2 (<stav:ženatý>) 3 (<stav:slobodný>) 2 (<autá:0..1>) 3 (<autá:2>) 2 Množina položiek Podpora (<vek:20..29><autá:0..1>) 3 (<vek:20..29><stav:slobodný>) 2 (<vek:30..39><stav:ženatý>) 2 (<vek:30..39>< autá:2>) 2 (<vek:30..39><stav:ženatý><autá:2>) (<vek:20..29><stav:slobodný><autá:0..1>) Nájdené kvantitatívne asociačné pravidlá: Kvantitatívne asociačné pravidlo Podpora Spoľahlivosť <vek:20..29> <autá:0..1> 60% 100% <vek:30..39> a <stav:ženatý> <autá:2> 40% 100% 2 2 Lift 1,7 2,5 53 54