Adatbányászat. Gyakori elemhalmazok Asszociációs és döntési szabályok. Szegedi Tudományegyetem. Vásárlói kosarak Gyakori elemhalmazok FP-growth

Hasonló dokumentumok
Csima Judit május 10.

Gyakori elemhalmazok és asszociációs szabályok

Gyakori elemhalmazok kinyerése

Asszociációs szabályok

Gyakori elemhalmazok

Leggyakrabban használt adatbányászási technikák. Vezetői információs rendszerek

Csima Judit április 29.

Gyakorló feladatok adatbányászati technikák tantárgyhoz

Nagyméretű adathalmazok kezelése (BMEVISZM144) Reinhardt Gábor április 5.

Struktúra nélküli adatszerkezetek

Adatbányászat: Asszociációs szabályok Alapfogalmak és algoritmusok

Adatbányászat: Társítási szabályok Alapfogalmak és algoritmusok

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

Diszkrét matematika I.

Csima Judit november 15.

Diszkrét matematika I.

Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén

Nagy Gábor compalg.inf.elte.hu/ nagy

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

Felvételi tematika INFORMATIKA

Programozási módszertan. Dinamikus programozás: A leghosszabb közös részsorozat

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

Idegennyelv-tanulás támogatása statisztikai és nyelvi eszközökkel

Algoritmuselmélet 1. előadás

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

Szociális hálózatok Gráf alapú módszerek. Adatbányászat. Klaszterezés Szociális hálózatok. Szegedi Tudományegyetem. Adatbányászat

Nagy Gábor compalg.inf.elte.hu/ nagy

Számítógépes döntéstámogatás. Genetikus algoritmusok

Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

b) Ábrázolja ugyanabban a koordinátarendszerben a g függvényt! (2 pont) c) Oldja meg az ( x ) 2

Csima Judit BME, VIK, november 9. és 16.

ADATBÁZISOK. 4. gyakorlat: Redundanciák, funkcionális függőségek

SZÁMÍTÁSTUDOMÁNY ALAPJAI

Bonyolultságelmélet. Thursday 1 st December, 2016, 22:21

Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra:

Amortizációs költségelemzés

Diszkrét matematika 2.C szakirány

0. Ha valahol még nem szerepelt a relációs algebrai osztás, akkor azt kell először venni:

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

A segédletben található esetleges hibákkal kapcsolatos visszajelzéseket szívesen veszem.

I/A. Az alkalmazottak adatai

Diszkrét matematika I.

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK KÖZÉPSZINT Függvények

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

Függvények Megoldások

2004_02/10 Egy derékszögű trapéz alapjainak hossza a, illetve 2a. A rövidebb szára szintén a, a hosszabb b hosszúságú.

MATEMATIKA ÉRETTSÉGI május 8. EMELT SZINT

Diszkrét matematika II. gyakorlat

Házi feladatok megoldása. Nyelvtani transzformációk. Házi feladatok megoldása. Házi feladatok megoldása. Formális nyelvek, 6. gyakorlat.

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Edényrendezés. Futási idő: Tegyük fel, hogy m = n, ekkor: legjobb eset Θ(n), legrosszabb eset Θ(n 2 ), átlagos eset Θ(n).

Algoritmuselmélet 2. előadás

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Függvények

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Logika es sz am ıt aselm elet I. r esz Logika Negyedik el oad as 1/26

A tanulmány Klaus Berberich és Srikanta Bedathur Computing n-gram Statistics in MapReduce cikkét dolgozza fel.

1. ábra. Egy rekurzív preorder bejárás. Egy másik rekurzív preorder bejárás

Diszkrét matematika 2. estis képzés

Nagy Gábor compalg.inf.elte.hu/ nagy

Diszkrét matematika 2. estis képzés

Intelligens technikák k a

Gráfelmélet. I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma

Az egyenes egyenlete: 2 pont. Az összevont alak: 1 pont. Melyik ábrán látható e függvény grafikonjának egy részlete?

Matematika érettségi emelt 2008 október. x 2 0. nem megoldás. 9 x

Algoritmuselmélet 1. előadás

Haladó rendezések. PPT 2007/2008 tavasz.

(. 04 *A 0, 0 2* ( ( =!"#$!" #$% &' %& # () *+,-./ # 56789:; - 2 F G ()H2 IJKFLMNF O>? ; G 2.3G VWO&# 2 KXY; O [

Elmaradó óra. Az F = (V,T) gráf minimális feszitőfája G-nek, ha. F feszitőfája G-nek, és. C(T) minimális

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Egyszerű programozási tételek

BOOLE ALGEBRA Logika: A konjunkció és diszjunkció tulajdonságai

Komplex számok. Komplex számok és alakjaik, számolás komplex számokkal.

Alap fatranszformátorok II

7. BINÁRIS FÁK 7.1. A bináris fa absztrakt adattípus 7.2. A bináris fa absztrakt adatszerkezet

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

Zárthelyi dolgozat feladatainak megoldása õsz

5. előadás. Skaláris szorzás

Gráfelméleti feladatok. c f

Csima Judit október 24.

Fibonacci számok. Dinamikus programozással

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

2) Írja fel az alábbi lineáris függvény grafikonjának egyenletét! (3pont)

Nagy András. Feladatok a logaritmus témaköréhez 11. osztály 2010.

Rendezések. Összehasonlító rendezések

Mohó algoritmusok. Példa:

2. Visszalépéses stratégia

Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra:

A 2015/2016. tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló MATEMATIKA III. KATEGÓRIA (a speciális tanterv szerint haladó gimnazisták)

Adatbázisok elmélete 12. előadás

Tárgyév adata december 31. Tárgyév adata december 31. A tétel megnevezése

Partíció probléma rekurzíómemorizálással

32. A Knuth-Morris-Pratt algoritmus

Programozási módszertan. Mohó algoritmusok

angolul: greedy algorithms, románul: algoritmi greedy

Azonosító jel: MATEMATIKA EMELT SZINTŰ ÍRÁSBELI VIZSGA május 8. 8:00. Az írásbeli vizsga időtartama: 240 perc

JAVASLAT A TOP-K ELEMCSERÉK KERESÉSÉRE NAGY ONLINE KÖZÖSSÉGEKBEN

Diszkrét matematika 2.C szakirány

Átírás:

Asszociációs és döntési szabályok Szegedi Tudományegyetem

Mire megyünk a gyakori elemhalmazokkal? A különféle adatbázisokban gyakran együttesen előforduló jellemzők ismerete hasznos lehet Mit kezd vele egy marketinges? És az adatbányász? Tranzakció ID 1 5 Termékek {tej, kenyér, Hertz szalámi} {sör, pelenka} {sör, virsli} {sör, bébiétel, pelenka} {pelenka, kóla, kenyér}

megjelenési formái Horizontális tárolás Tranzakció ID 1 5 Termékek {tej, kenyér, Hertz szalámi} {sör, pelenka} {sör, virsli} {sör, bébiétel, pelenka} {pelenka, kóla, kenyér}

megjelenési formái Vertikális/invertált tárolás Termék tej kenyér Hertz szalámi sör pelenka virsli bébiétel kóla Kosarak {1} {1, 5} {1} {,,} {,,5} {} {} {5}

megjelenési formái Relációs tárolás Kosár 1 1 1 5 5 5 Termék tej kenyér Hertz szalámi sör pelenka sör virsli sör bébiétel pelenka pelenka kóla kenyér

legyűjtése Cél: T tranzakciós adatbázis jellemzőinek (termékeinek) azon diszjunkt részhalmazainak meghatározása, melyek együttes támogatottsága (support) meghalad egy gyakorisági küszöbértéket, továbbá a kettőjük között (bármely irányban) fennálló implikációt jellemző bizonyosság (confidence) magas X halmaz támogatottsága: s(x ) = {ti ti T X ti } Relatív támogatottság: s(x ) normalizálása a tranzakciós adatbázis sorainak számával A B szabály bizonyossága c(a B) = s(a B) s(a) P(B A) A B szabály jelentése: amennyiben egy kosárban benne vannak A elemei, úgy az valószínű B-t is tartalmazni fogja

érdekessége Minden gyakorisági és bizonyossági küszöböt meghaladó szabály érdekel bennünket? Egy szabály bizonyossága egyszerűen attól is lehet magas, hogy a szabály jobb oldalán lévő elem a bal oldalon állóktól függetlenül gyakori. Például? A B szabály érdekessége = c(a B) P(B) Hogy lehet értelmezni ezt a mutatót? (Érdekesek a magas abszolút értékkel jellemzett szabályok lesznek. Miért?) A küszöbszámok olyanok legyenek, hogy a megkapott érdekes szabályok feldogozhatók legyenek További érdekességi mutatók: χ, κ,...

Hol lehet még használni a gyakori elemhalmazokat? Plágiumellenőrzés Intuíciónkkal ellentétben legyenek a kosaraink mondatok, a termékek pedig a dokumentumok Konklúzió A "termékek" alkotta "kosarak" és a "tartalmazás" fogalmát rugalmasan kell kezelni Termékek közötti függést vizsgáljuk, nem a kosarak közötti hasonlóságot (azt már letudtuk korábban) Milyen jelentést társíthatunk a gyakori elemhalmazoknak/asszociációs szabályoknak, ha a kosarak a dokumentumok, és a termékek a mondatok?

Hol lehet még használni a gyakori elemhalmazokat? segítségével kezdetleges osztályozót építhetünk Hiányzó adatokat becsülhetünk meg a változók gyakori együttállásából Változókat vonhatunk össze, ha azok túlzott (teljes) egyezést mutatnak

Az aszociációs szabályok legyártásának sémája t (relatív) gyakorisági küszöböt meghaladó gyakori elemhalmazok F halmazának legyűjtése A gyakori elemhalmazok particionálása (diszjunkt részhalmazokra bontása), bizonyosságuk mértékének vizsgálata

Miért nem működik a naiv megközelítés? Mi lenne a naiv megközelítés? d termék d d+1 + 1 jelölt (pl. d = 9 18660 lehetőség) d P d d j Bizonyítás (hint: (1 + x)d = + xd) j x j=1 d P i=1 d d i d P i d i j j=1 d = d P i=1 d i (d i 1) = d P i=1 d i d i d P i=1 5 106 1 0 6 8 d 10 1 1 log10 (lehetséges asszociációs szabályok) lehetséges asszociációs szabályok ( ) (d 1) 6 0 6 8 d 10 1 1 d i =

A segítség I elemhalmaz gyakori J I elemhalmaz gyakori És ha I elemhalmaz nem gyakori? Anti-monoton tulajdonság miatt: f függvény anti-monoton, ha X, Y P (U) : X Y f (X ) f (Y ) {a} {b} {c} {a,b} {a,c} {b,c} {a,b,c}

Az érvényesülése Legyen a gyakorisági küszöbértékünk Termék sör kenyér kóla pelenka tej virsli Gyakoriság 1

Az érvényesülése Legyen a gyakorisági küszöbértékünk Termék Gyakoriság sör kenyér kóla pelenka tej virsli 1 Termékek Gyakoriság {kenyér, sör} {pelenka, sör} {sör, tej} {kenyér, pelenka} {kenyér, tej} {pelenka, tej}

meghatározása Algorithm 1 számításának pszeudokódja Input: U termékuniverzum, T tranzakciós adatbázis, t gyakorisági küszöbérték Output: gyakori elemhalmazok 1: C1 := U : Számítsuk ki C1 elemeinek támogatottságait : F1 := {x x C1 s(x) t} : for (k = ; k < U &&Fk 1 6= ; k + +) do 5: Ck meghatározása Fk 1 elemeiből 6: Ck elemeinek támogatottságának számítása 7: Fk := {X X Ck s(x ) t} 8: end for 9: return ki=1 Fi

Ck -k számításának hatékony módja F1 elemeire támaszkodva. Inkább ne! Fk 1 és F1 elemeinek kombinálásából. Fk 1 és Fk 1 elemeinek kombinálásából. Előnye, hogy nem generál fölöslegesen többször elemhalmazokat, csak akkor von össze, ha A = {a1, a,..., ak 1 } Fk 1, B = {b1, b,..., bk 1 } Fk 1 : ai = bi, 1 i k ak 1 6= bk 1 F elemein megéri értelmezni egy rendezést (pl. egészekké leképezni őket), és így tárolni őket

Ck gyakoriságának számításának módja Fk 1 lehetséges elempáros gyakoriságát kell számon tartani memóriakorlát A nemnulla értékek arányában ezeket vagy mind eltárolhatjuk, vagy (i, j, c) hármasok halmazaként kezelhetjük őket, amely értelmezése: az i elemet a j elemmel együtt előfordulni c alkalommal láttuk Egydimenziós háromszögmátrixban (i, j), i j elempárok gyakorisága a t = (i 1)( Fk 1 i ) + j i pozíción. Miért? ) ( Fk 1 Ha a nulla elemek száma meghaladja -t, akkor megéri az (i, j, c) hármasokkal történő reprezentáció

Ck gyakoriságának számításának módja példa Tfh. van 107 kosár, kosaranként 10 termékkel 105 lehetséges termék kapható Háromszögmátrixszal 5 109 egésszel írhatjuk le az elempárok gyakoriságát Index-gyakoriság hármasokkal legrosszabb esetben is csak 10 7 10 termékpáros van jelen a tranzakciós adatbázisban max., 5 108 = 1, 5 109 egésszel leírhatók a nemnulla elempárok vásárlásainak gyakoriságai

tömörítése Maximális gyakori elemhalmazok: {I I gyakori @ gyakori J I } Zárt elemhalmazok: {I @J I : s(j) = s(i )} Zárt gyakori elemhalmazok: a gyakorisági küszöbértéknek eleget tevő zárt elemhalmazok halmaza Lehet-e egy maximális gyakori elemhalmaz nem zárt? Lehet-e egy zárt gyakori elemhalmaz nem maximális?

tömör definiálása Példa (küszöbérték = ) Elem A B C AB AC BC ABC Darab 5 Maximális Zárt Gyakori zárt

tömör definiálása Példa (küszöbérték = ) Elem A B C AB AC BC ABC Darab 5 Maximális + + - Zárt + + + + Gyakori zárt + + + -

A gyakori elemhalmaztípusok viszonyai Zárt gyakori elemhalmazok Maximális gyakori elemhalmazok

PCY (Park-Chen-Yu) algoritmus az Apriori kiterjesztése Az egyelemű halmazok gyakoriságának számolásával egyidejűleg tartsunk fenn egy számlálót, ami az elempárok hatványhalmazainak bizonyos részhalmazainak aggregált előfordulásait tartja számon Mit tudunk biztosra az aggregált előfordulási gyakoriságokból? Mit nem tudunk? Csak azokat a kételemű halmazokat kell tényleges gyakoriságuk szerint megvizsgálni, amelyek alkotóelemei gyakoriak, valamint olyan kupacba képeződtek le, amely aggregált gyakorisága meghaladja a gyakorisági küszöbértéket

Gyakorlati észrevételek Mintavételezéssel is becsülhetjük a támogatottságot helyességet, teljességet ekkor persze kockáztatjuk A tranzakciós adatbázis struktúrájától függően módosított stratégiák is elképzelhetők

Apriori általánosítása Kosárkezdemények szintek szerinti bővítési stratégiájának lecserélése érvényesítése ekvivalenciaosztályonként haladva Az eredeti felállásban az ekvivalenciaosztályok a termék n-esek mérete alapján történt Alternatív megközelítés: átfedő prefix vagy szuffix métere alapján

Apriori általánosítása prefix és szuffix szemlélet null A AB ABC AC ABD B AD ACD null C BC BD BCD D CD A AB AC ABC B C BC AD ABD D BD ACD CD BCD ABCD ABCD (a) Prefix fa (b) Szuffix fa

FP-fák helyett olyan adatszerkezet használata, amelyből könnyen kinyerhetők a gyakori elemhalmazok FP-fák: alternatív, tömörített reprezentációs lehetőség Előállíthatók a tranzakciós adatbázis sorainak egyszeri feldolgozása segítségével Az egyes kosarak a fában egy-egy útként jelennek meg Egyes termékek több kosárban is szerepet kapnak átfedő utak tömöríthetőség Szerencsés esetben az egész adatbázis a memóriában tartható

FP-fák építésének menete Célszerű inicializáció: rendezzük a termékeket csökkenő támogatottságuk szerint (heurisztika) Tranzakciós adatbázis sorainak feldolgozása Ha találunk olyan gyökérből induló utat a fában, aminek van az adott kosár prefixével megegyező szelete, akkor azt az ágat folytatjuk Az átfedő csúcsokhoz tartozó gyakorisági értékek inkrementálása Újonnan bekerülő csúcsok gyakorisági értékeinek 1-re állítása Különben új gyökérből induló út felvétele A csúcsokhoz 1-es gyakorisági értékek rendelése Azonos termékeket jelölő csúcsok között mutatók létesítése

FP-fa példa 1 1 Tan, Steinbach, Kumar: Introduction to Data Mining diái alapján

FP-fa utolsó kosár feldolgozása után TID 1 5 6 7 8 9 10 Kosár {A,B} {B,C,D} {A,C,D,E} {A,D,E} {A,B,C} {A,B,C,D} {B,C} {A,B,C} {A,B,D} {B,C,E} A:7 B: C: B:5 C:1 D:1 D:1 E:1 D:1 C: D:1 D:1 E:1 E:1 Milyen fákat kapnánk, ha a kosarakban lévő termékeket a tranzakciós adatbázisbeli támogatottságukkal egyező/fordított sorrendben ábrázolnánk? ({A:7,B:8,C:7,D:5,E:})

FP-Growth algoritmus FP-fán bottom-up elven működő oszd meg és uralkodj eljárás Ha egy elemhalmazról az FP-fa alapján megállapítható, hogy gyakori, vizsgáljuk meg az adott halmazt szuffixként tartalmazó bővebb halmazokat A már bizonyosan gyakori részhalmazon kondicionált FP-részfa vizsgálatával eldönthető ez a kérdés Pl. {E}-ről megállapítható, hogy gyakori volt, úgy vizsgáljuk meg, hogy {A,E}, {B,E}, {C,E}, {D,E} halmazok között találunk-e gyakoriakat

Célelem(ek)re kondicionált FP-fa A teljes FP-fának azon része, amit akkor kapnánk, ha csak a célelem(ek)et tartalmazó tranzakciókat vennénk figyelembe Persze nem akarjuk újraépíteni a fát 1 TID 1 5 6 7 8 9 10 Fejtsük le az adott célelem(ek)re nézve érdektelen részeket Kosár {A,B} {B,C,D} {A,C,D,E} {A,D,E} {A,B,C} {A,B,C,D} {B,C} {A,B,C} {A,B,D} {B,C,E} A:7 B: C:1 D:1 C: D:1 E:1 E:1 E:1 Az {E}-n kondicionált FP-fa

Célelem(ek)re kondicionált FP-fa A teljes FP-fának azon része, amit akkor kapnánk, ha csak a célelem(ek)et tartalmazó tranzakciókat vennénk figyelembe Persze nem akarjuk újraépíteni a fát TID...... 10 Egy csúcs szupportja legyen a fiai frissített szupportjainak összege Kosár... {A,C,D,E} {A,D,E}... {B,C,E} A: C:1 D:1 B:1 C:1 D:1 Az {E}-n kondicionált FP-fa

Célelem(ek)re kondicionált FP-fa A teljes FP-fának azon része, amit akkor kapnánk, ha csak a célelem(ek)et tartalmazó tranzakciókat vennénk figyelembe Persze nem akarjuk újraépíteni a fát TID...... 10 Küszöbszámot meg nem haladó összgyakoriságú elemek elhagyása (pl. -es küszöb alkalmazása mellett) Készítsük el a(z {E}-t tartalmazó) gyakori elemketteseken kondicionált FP-fákat, ami alapján meghatározhatjuk a gyakori elemhármasokat (pl. {D,E} {A,D,E}) Kosár... {A,C,D,E} {A,D,E}... {B,C,E} A: C:1 C:1 D:1 D:1 Az {E}-n kondicionált FP-fa