Pravila pridruživanja osnovni koncepti i algoritmi
Istraživanje pravila pridruživanja Za dati skup transakcija (slogova) naći pravila koja predviñaju pojavljivanje stavke (objekta) na osnovu pojavljivanja ostalih stavki (objekata) u transakciji Transakcije potrošačke korpe (Market-Basket transactions) TID Stavke 1 Hleb, Mleko 2 Hleb, Pelene, Pivo, Jaja 3 Mleko, Pelene, Pivo, Kola 4 Hleb, Mleko, Pelene, Pivo 5 Hleb, Mleko, Pelene, Kola Primer pravila pridruživanja {Pelene} {Pivo}, {Mleko, Hleb} {Jaja, Kola}, {Pivo, Hleb} {Mleko}, Implikacija označava istovremeno pojavljivanje, ne uzročnost! 2
Pravila pridruživanja Pravila pridruživanja utvrñuju veze (asocijacije, pridruživanja) izmeñu podataka u velikim bazama podataka Analiza veza izmeñu podataka otkrivanje veza izmeñu pojedinačnih podataka ne karakterizuje se celokupna baza podataka Pravila pridruživanja opisuju relacije izmedju skupova elemenata u podacima, i oblika su A B gde su A i B skupovi elemenata predstavljeni u skupu podataka. 3
Pravila pridruživanja Primer: {hleb, mleko} {pelene} ako kupac kupi hleb i mleko, (verovatno) će kupiti i pelene elementi (stavke, kod potrošačke korpe artikli, eng. items): hleb, mleko, pelene skup stavki (eng. itemset) sadrži jednu ili više stavki K-skup stavki - skup koji sadrži K stavki 4
Definicije pojmova Brojač podrške (Support count) (σ) Broj pojavljivanja skupa stavki Npr. σ({mleko, Hleb, Pelene}) = 2 TID Stavke Podrška Učestalost pojavljivanja skupa stavki u transakcijama Npr. s({mleko, Hleb, Pelene}) = 2/5 1 Hleb, Mleko 2 Hleb, Pelene, Pivo, Jaja 3 Mleko, Pelene, Pivo, Kola 4 Hleb, Mleko, Pelene, Pivo 5 Hleb, Mleko, Pelene, Kola Čest skup stavki Skup stavki čija je podrška veća ili jednaka od navedenog praga (minsup) 5
Definicije pojmova Pravilo pridruživanja Implikacija oblika X Y, gde su X i Y skupovi stavki Primer: {Mleko, Pelene} {Pivo} Metrika za procenu pravila Podrška Količnik broja transakcija koje sadrže i X i Y i ukupnog broja transakcija s(x Y) = N Pouzdanost (poverenje, eng. confidence) Meri koliko često se stavka Y javlja u transakcijama koje sadrže X c(x Y) = σ (X Υ Y ) σ ( X ΥY ) σ ( X ) TID Stavke 1 Hleb, Mleko 2 Hleb, Pelene, Pivo, Jaja 3 Mleko, Pelene, Pivo, Kola 4 Hleb, Mleko, Pelene, Pivo 5 Hleb, Mleko, Pelene, Kola Primer: { Mleko, Pelene} (Mleko, Pelene, Pivo) s = σ = T σ (Mleko,Pelene,Pivo) c = = σ (Mleko, Pelene) 2 3 Pivo 2 5 = 0.4 = 0.67 6
Istraživanje pravila pridruživanja - nastavak Za dati skup transakcija (slogova) T cilj istraživanja pravila pridruživanja je pronaći sva pravila koja imaju podršku minsup praga pouzdanost minconf praga Pristup metodom grube sile: Izlistati sva moguća pravila pridruživanja Izračunati podršku i pouzdanost za svako pravilo Potkresati pravila koja ne zadovoljavaju minsup i minconf prag Računarski vrlo zahtevan proces! 7
Istraživanje pravila pridruživanja - Visoko poverenje nastavak jako pravilo, ukazuje na visok nivo uzročnosti, pridruživanja, asocijacije izmeñu artikala/elemenata ovakva pravila su od interesa Visoka podrška pojavljuje se često, manje je verovatno da se pravilo slučajno pojavilo uočavanje čestih pravila nudi više mogućnosti za akciju U slučaju jako velikih baza podataka minconf (minimalni nivo poverenja) se obično postavlja visoko (npr. 80%) minsup (minimalni nivo podrške) je uobičajeno značajno niži (npr. 5-10%), zbog velike raznolikosti 8
Klasičan primer: potrošačka korpa Utvrditi koji se artikli prodaju zajedno Ako kupac kupi odreñene artikle, koji su još proizvodi verovatni da se nañu u njegovoj korpi Primena: npr. organizovati promotivnu kampanju (rasprodaju) tako da se popust ne daje istovremeno na artikle koji se uobičajeno kupuju zajedno ako se prepozna pravilo da kupac koji kupi ženske cipele obično kupuje i odgovarajuću torbu u istom dezenu, onda dati popust na cipele, ali ne i na torbu (ili obrnuto) kupac koji kupuje računar obično kupi i štampač: ponuditi popust na štampač, ali ne i na računar Pored uobičajenih paketa proizvoda, naći i iznenañujuće (neuobičajene) pridružene artikle (npr. novi trend) 9
Istraživanje pravila pridruživanja - primer TID Stavke 1 Hleb, Mleko 2 Hleb, Pelene, Pivo, Jaja 3 Mleko, Pelene, Pivo, Kola 4 Hleb, Mleko, Pelene, Pivo 5 Hleb, Mleko, Pelene, Kola Napomene: Primeri pravila: {Mleko,Pelene} {Pivo} (s=0.4, c=0.67) {Mleko,Pivo} {Pelene} (s=0.4, c=1.0) {Pelene,Pivo} {Mleko} (s=0.4, c=0.67) {Pivo} {Mleko,Pelene} (s=0.4, c=0.67) {Pelene} {Mleko,Pivo} (s=0.4, c=0.5) {Mleko} {Pelene,Pivo} (s=0.4, c=0.5) Sva prethodna pravila su binarni delovi istog skupa stavki: {Mleko, Pelene, Pivo} Pravila izvedena iz istog skupa stavki imaju istu podršku ali mogu da imaju različitu pouzdanost To je razlog razdvajanja zahteva za podrškom i pouzdanošću 10
Formiranje pravila pridruživanja Dva koraka formiranje podržanih (čestih) skupova stavki Formirati sve skupove stavki kod koijh je podrška minsup formiranje pravila iz čestih skupova Formirati pravila sa visokom pouzdanošću iz svakog skupa stavki, pri čemu je svako pravilo binarna podela čestog skup stavki 11
Formiranje pravila pridruživanja Formiranje svih česte skupova artikala je problem jer u primenama se obično pojavljuju stotine hiljada različitih artikala (npr. potrošačka korpa) za d artikala postoji 2 d - 1 mogućih skupova (+ prazan skup) njihovu frekvenciju treba proveriti na osnovu miliona transakcija svakog dana/sata Računarski vrlo zahtevan proces da li je moguće smanjiti prostor pretrage za česte skupove? 12
Rešetka skupova artikala null A B C D E AB AC AD AE BC BD BE CD CE DE ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE ABCD ABCE ABDE ACDE BCDE ABCDE 13
Formiranje čestih skupova stavki Pristup metodom grube sile: Svaki skup stavki u rešetki je kandidat da bude čest Prebrojati podršku za svakog kandidata pregledanjem baze N Transakcije TID Stavke 1 Hleb, Mleko 2 Hleb, Pelene, Pivo, Jaja 3 Mleko, Pelene, Pivo, Kola 4 Hleb, Mleko, Pelene, Pivo 5 Hleb, Mleko, Pelene, Kola w Lista kandidata Uparuje se svaka transakcija sa svakim kandidatom Složenost ~ O(NMw) => Jako skupo jer je M = 2 d!!! M 14
15 Složenost izračunavanja Neka je dato d jedinstvenih stavki: Ukupan broj skupa stavki je = 2 d Ukupan broj mogućih pravila pridruživanja je : 1 2 3 1 1 1 1 + = = + = = d d d k k d j j k d k d R Ako je d=6, R = 602
Strategije formiranja čestih Smanjiti broj kandidata (M) skupova stavki Kompletno pretraživanje: M=2 d Koristiti tehnike potkresivanja radi smanjenja M Smanjiti broj transakcija (N) Smanjivati veličinu N kako raste broj skupova stavki Koristi se u DHP (Direct Hashing and Pruning) i vertikalno zasnovanim algoritmima istraživanja Smanjiti broj poreñenja (NM) Koristiti efikasnije strukture podataka radi čuvanja kandidata i/ili transakcija Nije potrebno uparivati svakog kandidata sa svakom transakcijom 16
Smanjivanje broja kandidata Apriori princip: Ako je skup stavki čest, tada su i svi njegovi podskupovi takoñe česti Apriori princip važi zbog sledeće osobine metrike kojom se meri podrška: X, Y : ( X Y ) s( X ) s( Y ) Podrška skupa pravila nikada nije veća od podrške njegovih podskupova Ova osobina je poznata poda nazivom anti-monotonost podrške 17
Anti-monotonost Zatvorenje na niže (downward closure): svaki podskup od podržanog (čestog) skupa je takoñe podržan (čest) ako je {A, B, C} čest, onda je čest i {A, C} Odatle, ako imamo skup artikala koji nije podržan (nije frekventan), onda ni njegovi nad-skupovi ne mogu biti podržani (anti-monotonost) dakle, njegove nad-skupove ne treba razmatrati ako {A} nije čest, onda bilo šta što sadrži {A} ne može biti često ne treba da bude razmatrano 18
Anti-monotonost Ne-podržan izostavljeni nadskupovi 19
Apriori algoritam inicijalizovati skupove kardinalnosti 1 odrediti frekvenciju kandidatskih skupova; podržani skupovi su oni čija je frekvencija iznad minsup ima novih podržanih skupova? da formirati nove kandidate proširivanjem podržanih skupova sa po jednim elementom ne kraj 20
Apriori algoritam Na početku uzeti k=1 Formirati česte skupove stavki kardinalnosti 1 Ponavljati proces sve dok se prestane sa pronalaženjem čestih skupova stavki Formirati skupove stavki dužine (k+1) iz skupova stavki dužine k Potkresati kandidatske skupove stavki koji sadrže podskup kardinalnosti k koji nije čest Prebrojati podršku za svakog kandidata pregledanjem baze Ukloniti kandidate koji su retki (tj. ostaviti samo one koji su česti) 21
Ilustracija Apriori principa (minsup >1) Tid Items 1 A, C, D 2 B, C, E 3 A, B, C, E 4 B, E prvi prolaz C Itemset sup 1 L 1 {B} 3 {C} 3 {D} 1 {E} 3 C 2 C 2 {A, B} 1 L 2 Itemset sup drugi prolaz {A, C} 2 {B, C} 2 {B, E} 3 {C, E} 2 {A} Itemset {A, C} C Itemset 3 treći prolaz L 3 {B, C, E} sup 2 {A, E} 1 {B, C} 2 {B, E} 3 {C, E} 2 2 Itemset sup {B, C, E} 2 Itemset sup {A} 2 {B} 3 {C} 3 {E} 3 Itemset {A, B} {A, C} {A, E} {B, C} {B, E} {C, E} 22
Ilustracija Apriori principa Stavka Broj Hleb 4 Kola 2 Mleko 4 Pivo 3 Pelene 4 Jaja 1 Minimalna podrška = 3 Stavke (1-skup stavki) Ako se posmatra svaki podskup broj skupova stavki je 6 C 1 + 6 C 2 + 6 C 3 = 41 Sa potkresivanjem zasnovanim na podršci broj stavki je 6 + 6 + 1 = 13 Skup stavki Broj {Hleb, Mleko} 3 {Hleb, Pivo} 2 {Hleb, Pelene } 3 {Mleko, Pivo} 2 {Mleko, Pelene} 3 {Pivo, Pelene} 3 Parovi (2-skup stavki) (Nema potrebe za formiranjem kandidata koji uključuju kolu ili jaja Trojke (3-skup stavki) Itemset Count {Hleb, Mleko, Pelene} 3 23
Formiranje i potkresivanje skupa Korišćene oznake: kandidata C k+1 označava česte skupove stavki dužine k. F k označava skup kandidata dužine k. Funkcija formiranja novih novih kandidatskih skupova u apriori algoritmu uključuje Formiranje kandidata: generišu se novi k-skupovi stavki na osnovu čestih skupova stavki dužine (k-1) koji su formirani u prethodnoj iteraciji Potkresivanje skupa kandidata: eliminišu se odreñeni kandidatski k- skupovi stavki korišćenjem strategije potkresivanja na osnovu podrške 24
Formiranje i potkresivanje skupa Metod grube sile kandidata Razmatra svaki podržani skup dužine k kao potencijalnog kandidata i zatim primenjuje potkresivanje F k-1 F 1 metoda Primer? Problemi? Potrebno leksikografsko ureñenje stavki u skupu 25
Formiranje i potkresivanje skupa F k-1 F k-1 metoda kandidata leksikografsko ureñenje Neka su A={a 1, a 2,..., a k-1 } i B={b 1, b 2,..., b k-1 } par čestih k- skupova stavki. A i B mogu da se kombinuju ako zadovoljavaju uslov a i = b i za svako i=1, 2,..., k-2, i a k-1 b k-1 Primer? 26
Formiranje i potkresivanje skupa kandidata Primer formiranja F k-1 F k-1 metodom C 3 ={abc, abd, acd, ace, bcd} samo-spajanje skupova iz C 3 abcd iz abc i abd acde iz acd i ace (podržani 3-skupovi) potkresivanje (izostavljanje nepodržanih skupova): acde se izostavlja jer ade nije u C 3 dakle, C 4 = {abcd} 27
Smanjenje broja poreñenja Prebrojavanje kandidata: Pregledati bazu podataka transakcija radi odreñivanja podrške svakog od kandidatskih skupova stavki Radi smanjenja broja poreñenja sačuvati kandidate u heš strukturi Umesto uparivanja svake transakcije sa svakim kandidatom transakcija se uparuje sa kandidatima koji se nalaze u heš grupi Transakcije Heš struktura N TID Stavke 1 Hleb, Mleko 2 Hleb, Pelene, Pivo, Jaja 3 Mleko, Pelene, Pivo, Kola 4 Hleb, Mleko, Pelene, Pivo 5 Hleb, Mleko, Pelene, Kola Grupa k 28
Formiranje Heš drveta Pretpostavimo da postoji 15 kandidatskih skupova stavki dužine 3: {1 4 5}, {1 2 4}, {4 5 7}, {1 2 5}, {4 5 8}, {1 5 9}, {1 3 6}, {2 3 4}, {5 6 7}, {3 4 5}, {3 5 6}, {3 5 7}, {6 8 9}, {3 6 7}, {3 6 8} Potrebna je : Heš funkcija Maksimalna veličina lista: najveći broj skupova stavki koji može da bude smešten u listu (ako broj kandidatskih skupova stavki prelazi navedenu vrednost podeliti čvor) Heš funkcija 3,6,9 1,4,7 2,5,8 1 4 5 1 2 4 4 5 7 1 2 5 4 5 8 2 3 4 5 6 7 3 4 5 3 5 6 1 3 6 3 5 7 6 8 9 1 5 9 3 6 7 3 6 8 29
Pronalaženje pravila Heš funkcija pridruživanja: heš drvo Heš drvo kandidata 1,4,7 3,6,9 2,5,8 Heš na 1, 4 ili 7 1 4 5 1 3 6 1 2 4 1 2 5 1 5 9 4 5 7 4 5 8 2 3 4 5 6 7 3 4 5 3 5 6 3 5 7 6 8 9 3 6 7 3 6 8 30
Pronalaženje pravila Heš funkcija pridruživanja: heš drvo Heš drvo kandidata 1,4,7 3,6,9 2,5,8 Heš na 2, 5 ili 8 1 4 5 1 3 6 1 2 4 1 2 5 1 5 9 4 5 7 4 5 8 2 3 4 5 6 7 3 4 5 3 5 6 3 5 7 6 8 9 3 6 7 3 6 8 31
Pronalaženje pravila Heš funkcija pridruživanja: heš drvo Heš drvo kandidata 1,4,7 3,6,9 2,5,8 Heš na 3, 6 ili 9 1 4 5 1 3 6 1 2 4 1 2 5 1 5 9 4 5 7 4 5 8 2 3 4 5 6 7 3 4 5 3 5 6 3 5 7 6 8 9 3 6 7 3 6 8 32
Operacije sa podskupovima Za datu transakciju t koji su mogući podskupovi veličine 3? 33
Operacije sa podskupovima korišćenjem heš drveta 1 2 3 5 6 1 + 2 3 5 6 2 + 3 5 6 3 + 5 6 2 3 4 5 6 7 transakcija Heš funkcija 1,4,7 3,6,9 2,5,8 1 4 5 1 3 6 1 2 4 1 2 5 1 5 9 4 5 7 4 5 8 3 4 5 3 5 6 3 6 7 3 5 7 3 6 8 6 8 9 34
Operacije sa podskupovima korišćenjem heš drveta 1 2 3 5 6 transakcija Heš funkcija 1 2 + 1 3 + 3 5 6 5 6 1 + 2 3 5 6 2 + 3 5 6 3 + 5 6 1,4,7 2,5,8 3,6,9 1 5 + 6 2 3 4 5 6 7 1 4 5 1 3 6 1 2 4 1 2 5 1 5 9 4 5 7 4 5 8 3 4 5 3 5 6 3 6 7 3 5 7 3 6 8 6 8 9 35
Operacije sa podskupovima korišćenjem heš drveta 1 2 3 5 6 transakcija Heš funkcija 1 2 + 1 3 + 3 5 6 5 6 1 + 2 3 5 6 2 + 3 5 6 3 + 5 6 1,4,7 2,5,8 3,6,9 1 5 + 6 2 3 4 5 6 7 1 4 5 1 3 6 1 2 4 1 2 5 1 5 9 4 5 7 4 5 8 3 4 5 3 5 6 3 5 7 6 8 9 3 6 7 3 6 8 Transakcija se uparuje sa 11 od 15 kandidata 36
Faktori koji utiču na složenost Izbor praga podrške smanjenje praga podrške daje veći broj čestih skupova stavki Ovim se povećava broj kandidata i najveća dužina čestih skupova stavki Dimenzionalnost (broj stavki) skupa stavki potrebno je više prostora za čuvanje brojača podrške za sve stavke ako se broj čestih skupova stavki poveća, povećava se i cena izračunavanja i izvoñenja U/I operacija Veličina baze podataka pošto Apriori pravi više prolaza, sa povećanjem broja transakcija raste i vreme izvršavanja algoritma Prosečna veličina (širina) transakcije Veličina transakcije povećava učestalost skupa stavki Ovim se povećava najveća dužina čestih skupova stavki i skupova koji se obilaze u heš drvetu (broj podskupova transakcije se povećava sa povećanjem njene veličine) 37
Formiranje pravila pridruživanja Svaki čest k-skup stavki može da proizvede do 2 k -2 pravila pridruživanja (ignorišu se pravila sa praznom levom ili desnom stranom) Pravilo se izdvaja deljenjem skupa stavki Y na dva neprazna podskupa X i Y-X, takve da X Y-X ima veću pouzdanost od zadatog praga. Svako takvo pravilo mora da zadovoljava i uslov da je veće od praga podrške. 38
Kompaktna reprezentacija čestog skupa stavki Neki skupovi stavki su redundantni jer imaju istu podršku kao i njihovi nadskupovi TID A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 Broj čestih skupova stavki = 3 10 10 = 1 Potrebna je kompaktna reprezentacija k k 39
Maksimalno čest skup stavki Skup stavki je maksimalno čest ako ni jedan od njegovih neposrednih nadskupova nije čest Maksimalni nadskupovi Retki skupovi stavki Granična linija 40
Zatvoreni skupovi stavki Skup stavki je zatvoren ako nijedan od njegovih neposrednih nadskupova nema istu podršku TID Items 1 {A,B} 2 {B,C,D} 3 {A,B,C,D} 4 {A,B,D} 5 {A,B,C,D} Itemset Support {A} 4 {B} 5 {C} 3 {D} 4 {A,B} 4 {A,C} 2 {A,D} 3 {B,C} 3 {B,D} 4 {C,D} 3 Itemset Support {A,B,C} 2 {A,B,D} 3 {A,C,D} 2 {B,C,D} 3 {A,B,C,D} 2 41
Maksimalni/zatvoreni skup stavki TID Items 1 ABC 2 ABCD 3 BCE 4 ACDE 5 DE null Ids transakcija 124 123 1234 245 345 A B C D E 12 124 24 4 123 2 3 24 34 45 AB AC AD AE BC BD BE CD CE DE 12 2 24 4 4 2 3 4 ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE 2 4 ABCD ABCE ABDE ACDE BCDE Nisu podržani niti od jedne transakcije ABCDE 42
Maksimalni/zatvoreni skup stavki Najmanja podrška = 2 null Zatvoreni ali ne i maksimalni 124 123 1234 245 345 A B C D E Zatvoreni i maksimalni 12 124 24 4 123 2 3 24 34 45 AB AC AD AE BC BD BE CD CE DE 12 2 24 4 4 2 3 4 ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE 2 4 ABCD ABCE ABDE ACDE BCDE # zatvorenih = 9 # maksimalnih = 4 ABCDE 43
Maksimalni/zatvoreni skup stavki 44
Alternativne metode formiranja čestih skupova stavki Obilazak rešetke skupa stavki opšte ka pojedinačnom / pojedinačno ka opštem Granica čestih skupova stavki null null Granica čestih skupova stavki null............ {a 1,a 2,...,a n } {a 1,a 2,...,a n } Granica čestih skupova stavki {a 1,a 2,...,a n } (a) Opšte ka pojedinačnom (Apriori algoritam) (b) Pojedinačno ka opštem (c) Dvosmerno 45
Alternativne metode formiranja čestih skupova stavki Obilazak rešetke skupa stavki Ekvivalentne klase null null A B C D A B C D AB AC AD BC BD CD AB AC BC AD BD CD ABC ABD ACD BCD ABC ABD ACD BCD ABCD ABCD (a) Prefiksno drvo (b) Sufiksno drvo 46
Alternativne metode formiranja čestih skupova stavki Obilazak rešetke skupa stavki Obilazak u širinu u odnosu na obilazak u visinu (a) Obilazak 'prvo u širinu' (Apriori algoritam) (b) Obilazak 'prvo u visinu' 47
Alternativne metode formiranja čestih skupova stavki Reprezentacija baze podataka Horizontalni/vertikalni raspored podataka Horizontalni raspored podataka TID Items 1 A,B,E 2 B,C,D 3 C,E 4 A,C,D 5 A,B,C,D 6 A,E 7 A,B 8 A,B,C 9 A,C,D 10 B Vertikalni raspored podataka A B C D E 1 1 2 2 1 4 2 3 4 3 5 5 4 5 6 6 7 8 9 7 8 9 8 10 9 48
Algoritam FP-rasta Upotrebljava komprimovanu reprezentaciju baze podataka pomoću FP-drveta Kada je FP-drvo konstruisano koristi se rekurzivni pristup tipa 'podeli pa vladaj' radi pronalaženja čestih skupova stavki FP frequent pattern 49
Konstrukcija FP-drveta Posle čitanja TID=1: null TID Stavke 1 {A,B} 2 {B,C,D} 3 {A,C,D,E} 4 {A,D,E} 5 {A,B,C} 6 {A,B,C,D} 7 {B,C} 8 {A,B,C} 9 {A,B,D} 10 {B,C,E} B:1 Posle čitanja TID=2: null A:1 B:1 A:1 B:1 C:1 D:1 50
Konstrukcija FP-drveta TID Stavke 1 {A,B} 2 {B,C,D} 3 {A,C,D,E} 4 {A,D,E} 5 {A,B,C} 6 {A,B,C,D} 7 {B,C} 8 {A,B,C} 9 {A,B,D} 10 {B,C,E} Baza podataka sa transakcijama B:5 A:7 C:1 null D:1 B:3 C:3 Header table Stavka A B C D E Pokazivač C:3 D:1 D:1 D:1 E:1 D:1 E:1 Pokazivači se koriste kao pomoć pri formiranju čestih skupova stavki E:1 51
FP-rast D:1 C:3 B:5 A:7 D:1 null C:1 D:1 D:1 B:1 C:1 D:1 Uslovni osnovni uzorci za D: P = {(A:1,B:1,C:1), (A:1,B:1), (A:1,C:1), (A:1), (B:1,C:1)} Rekurzivno se primeni FPrast na P Pronañeni su česti skupovi stavki (sa podrškom > 1): AD, BD, CD, ACD, BCD 52
Formiranje pravila Za dati čest skup stavki L, naći sve neprazne podskupove f L takve da f L f zadovoljava minimum zahteva za pouzdanošću. Ako je {A,B,C,D} čest skup stavki, pravila kandidati su: ABC D, ABD C, ACD B, BCD A, A BCD, B ACD, C ABD, D ABC AB CD, AC BD, AD BC, BC AD, BD AC, CD AB, Ako je L = k, tada postoji 2 k 2 kandidata za pravila pridruživanja (zanemaruju se L i L) 53
Formiranje pravila Kako efikasno formirati pravila iz čestih skupova stavki? U opštem slučaju, pouzdanost nema osobinu antimonotonosti c(abc D) može da bude veće ili manje od c(ab D) Meñutim, pouzdanost pravila izvedenih iz istog skupa pravila poseduje osobinu antimonotonosti: npr., L = {A,B,C,D}: c(abc D) c(ab CD) c(a BCD) 54
Formiranje pravila za Apriori Algoritam Rešetka sa pravilima Pravila sa niskom pouzdanošću Potkresana pravila 55
Formiranje pravila za Apriori Algoritam Pravila kandidati se formiraju uparivanjem dva pravila koja dele isti prefiks na desnoj strani spajanje(cd=>ab,bd=>ac) proizvodi kandidata za pravilo D => ABC CD=>AB BD=>AC Potkresati pravilo D=>ABC ako njegov podskup AD=>BC nema visoku pouzdanost D=>ABC 56
Procena obrazaca Algoritmi sa pravilima pridruživanja imaju tendenciju da formiraju veliki broj pravila veliki broj njih je neinteresantan ili redundantan redundantnost se javlja ako {A,B,C} {D} i {A,B} {D} imaju identičnu podršku i pouzdanost Kriterijum interesantnosti mera može da bude korišćen za rangiranje/potkresivanje izvedenih obrazaca U originalnoj formulaciji pravila pridruživanja podrška i pouzdanost su jedine mere koje se koriste 57
58 Primena interesantnosti mere Featur e Prod uct Prod uct Prod uct Prod uct Prod uct Prod uct Prod uct Prod uct Prod uct Prod uct Featur e Featur e Featur e Featur e Featur e Featur e Featur e Featur e Featur e Selection Preprocessing Mining Postprocessing Data Selected Data Preprocessed Data Patterns Knowledge Interesantost mere
Izračunavanje interesantnosti mere Za dato pravilo X Y, informacije potrebne za izračunavanje interesantosti pravila mogu da se dobiju iz tabele kontingenata X X Y f 11 Y f 10 f 01 f 00 f o+ f +1 T f +0 f 1+ f 11 : podrška za X i Y f 10 : podrška za X i Y f 01 : podrška za X i Y f 00 : podrška za X i Y Tabela kontingenata za X Y Koristi se za definisanje različitih mera podrška, pouzdanost, Gini, J-mera, itd. 59
Nedostaci pouzdanosti Kafa Kafa Čaj 15 5 20 Čaj 75 5 80 90 10 100 Pravilo pridruživanja: Čaj Kafa Pouzdanost= P(Kafa Čaj) = 0.75 Pošto je P(Kafa) = 0.9 Bez obzira na visoku pozdanost, pravilo je pogrešno P(Kafa Čaj) = 0.9375 60
Statistička nezavisnost Populacija od 1000 studenata 600 studenata zna da pliva (S) 700 studenata zna da vozi bicikl (B) 420 studenata zna i da pliva i da vozi bicikl (S,B) P(S B) = 420/1000 = 0.42 P(S) P(B) = 0.6 0.7 = 0.42 P(S B) = P(S) P(B) => Statistički nezavisno P(S B) > P(S) P(B) => Pozitivno korelisano P(S B) < P(S) P(B) => Negativno korelisano 61
62 Statistički zasnovane mere Mere koje uzimaju u obzir statističku zavisnost )] ( )[1 ( )] ( )[1 ( ) ( ) ( ), ( ) ( ) ( ), ( ) ( ) ( ), ( ) ( ) ( Y P Y P X P X P Y P X P Y X P coefficient Y P X P Y X P PS Y P X P Y X P Interest Y P X Y P Lift = = = = φ
Primer: Lift/Interest Kafa Kafa Čaj 15 5 20 Čaj 75 5 80 90 10 100 Pravilo pridruživanja: Čaj Kafa Pouzdanost= P(Kafa Čaj) = 0.75 Pošto je P(Kafa) = 0.9 Lift = 0.75/0.9= 0.8333 (< 1, prema tome je negativno pridruženo) 63
Nedostaci Lift & Interest Y Y Y Y X 10 0 10 X 90 0 90 X 0 90 90 X 0 10 10 10 90 100 90 10 100 0.1 Lift = = 10 0.9 Lift = = 1. 11 (0.1)(0.1) (0.9)(0.9) Statistička nezavisnost: Ako je P(X,Y)=P(X)P(Y) => Lift = 1 64
U literaturi se javlja veliki broj mera Neke mere su dobre za neke primene, ali ne i za neke druge Koji kriterijum treba da koristimo pri proceni kvaliteta mere? 65
Osobine dobre mere Piatetsky-Shapiro: Dobra mera mora da zadovoljava 3 osobine: M(A,B) = 0 ako su A i B statistički nezavisne M(A,B) se monotono povećava sa P(A,B) kada P(A) i P(B) ostaju nepromenjene M(A,B) se monotono smanjuje sa P(A) [ili P(B)] kada P(A,B) i P(B) [ili P(A)] ostaju nepromenjene 66
Poreñenje različitih mera 10 primera u tabeli kontingenata: Rangiranje tabele kontingenata pomoću različitih mera Exam ple f 11 f 10 f 01 f 00 E1 8123 83 424 1370 E2 8330 2 622 1046 E3 9481 94 127 298 E4 3954 3080 5 2961 E5 2886 1363 1320 4431 E6 1500 2000 500 6000 E7 4000 2000 1000 3000 E8 4000 2000 2000 2000 E9 1720 7121 5 1154 E10 61 2483 4 7452 67
Osobine u slučaju permutacije promenljivih B B A p q A r s A A B p r B q s Da li važi M(A,B) = M(B,A)? Simetrične mere: podrška, lift, kolektivna (zbirna) snaga, cosinusna, Žakard, itd. Asimetrične mere: pouzdanost, ubeñenje, Laplas, J-mera, itd. 68
Osobine u slučaju skaliranja reda/kolone Primer ocena-pol (Mosteller, 1968): Muški Ženski Muški Ženski Najviša 2 3 5 Najviša 4 30 34 Najniža 1 4 5 Najniža 2 40 42 3 7 10 6 70 76 2x 10x Mosteller: Pridruživanje treba da bude nezavisno od relativnog broja muških i ženskih studenata u primeru 69
70 Osobine u slučaju inverzije operacija 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 A B C D (a) (b) 0 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 (c) E F Transakcija 1 Transakcija N.....
Primer: φ-koeficijent φ-koeficijent je analogan koeficijentu korelacije za neprekidne promenljive Y Y Y Y X 60 10 70 X 20 10 30 X 10 20 30 X 10 60 70 70 30 100 30 70 100 φ = = 0.6 0.7 0.7 0.7 0.3 0.7 0.3 0.5238 φ = 0.2 0.3 0.3 0.7 0.3 0.7 0.3 0.5238 φ koeficijent ima istu vrednost za obe tabele = 71
Osobine u slučaju dodavanja praznih slogova B B A p q A r s B B A p q A r s + k Invarijantne mere: podrška, kosinusna mera, Žakard, itd. Mere koje nisu invarijantne: korelacija, Gini, mutual information, odds ratio, itd. 72
Različite mere i njihove osobine Sym bol M e as ure Range P1 P2 P3 O1 O2 O3 O3' O4 Φ Correlation -1 0 1 Yes Y es Yes Yes No Yes Yes No λ Lambda 0 1 Yes No No Yes No No* Yes No α Odds ratio 0 1 Yes* Yes Yes Yes Yes Yes* Yes No Q Yule's Q -1 0 1 Yes Y es Yes Yes Y es Yes Yes No Y Yule's Y -1 0 1 Yes Y es Yes Yes Y es Yes Yes No κ Cohen's -1 0 1 Yes Y es Yes Yes No No Yes No M Mutual Inf ormation 0 1 Yes Y es Yes Yes No No* Yes No J J-Measure 0 1 Yes No No No No No No No G Gini Index 0 1 Yes No No No No No* Yes No s Support 0 1 No Y es No Yes No No No No c Conf idence 0 1 No Y es No Yes No No No Yes L Laplace 0 1 No Y es No Yes No No No No V Conviction 0.5 1 No Y es No Yes** No No Yes No I Interest 0 1 Yes* Yes Yes Yes No No No No IS IS (cosine) 0.. 1 No Y es Yes Yes No No No Yes PS Piatetsky-Shapiro's -0.25 0 0.25 Yes Y es Yes Yes No Yes Yes No F Certainty f actor -1 0 1 Yes Y es Yes No No No Yes No AV Added value 0.5 1 1 Yes Y es Yes No No No No No S Collective strength 0 1 No Y es Yes Yes No Yes* Yes No ζ Jaccard 0.. 1 No Y es Yes Yes No No No Yes 2 1 2 K Klosgen's 1 2 3 Κ 0Κ Yes Y es Yes No No No No No 3 3 3 3 73