Gyakori elemhalmazok kinyerése

Hasonló dokumentumok
Gyakori elemhalmazok

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

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

Csima Judit május 10.

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

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

GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKON

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

B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.

Struktúra nélküli adatszerkezetek

Algoritmuselmélet 2. 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

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

Kupac adatszerkezet. 1. ábra.

Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8.

Adatszerkezetek és algoritmusok

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

... fi. ... fk. 6. Fabejáró algoritmusok Rekurzív preorder bejárás (elsőfiú-testvér ábrázolásra)

Algoritmusok és adatszerkezetek gyakorlat 07

Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.

Algoritmuselmélet 1. előadás

Adatszerkezetek és algoritmusok

Algoritmuselmélet 1. előadás

Korlátozás és szétválasztás elve. ADAGOLO adattípus

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

Adatszerkezetek 2. Dr. Iványi Péter

Adatszerkezetek 7a. Dr. IványiPéter

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

Programozási módszertan. Mohó algoritmusok

A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek:

Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése

Információs Technológia

Shannon és Huffman kód konstrukció tetszőleges. véges test felett

Adatbázis rendszerek Gy: Algoritmusok C-ben

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

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:

Elemi adatszerkezetek

Fájlszervezés. Adatbázisok tervezése, megvalósítása és menedzselése

SZÁMÍTÁSTUDOMÁNY ALAPJAI

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.

Asszociációs szabályok

Számláló rendezés. Példa

A programozás alapjai 1 Rekurzió

43. ORSZÁGOS TIT KALMÁR LÁSZLÓ MATEMATIKAVERSENY MEGYEI FORDULÓ HETEDIK OSZTÁLY JAVÍTÁSI ÚTMUTATÓ

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

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

GRÁFELMÉLET. 7. előadás. Javító utak, javító utak keresése, Edmonds-algoritmus

Összetett programozási tételek

Csima Judit április 29.

Algoritmuselmélet 7. előadás

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

15. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: január 30.

A félév során előkerülő témakörök

A számítástudomány alapjai

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

Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)

1 2. gyakorlat Matematikai és nyelvi alapfogalmak. dr. Kallós Gábor

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.

Diszkrét matematika II. gyakorlat

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

15. A VERSENYRENDEZÉS

Ajánlott elemi feladatok az AAO tárgyhoz 41 feladat

2. Visszalépéses stratégia

III. Gráfok. 1. Irányítatlan gráfok:

Tartalomjegyzék Algoritmusok - pszeudókód

0-49 pont: elégtelen, pont: elégséges, pont: közepes, pont: jó, pont: jeles

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat

Számítógép és programozás 2

Gráfok 1. Tárolási módok, bejárások. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

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

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

V. Kétszemélyes játékok

2. Visszalépéses keresés

Fák Témakörök. Fa definíciója. Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás B-fa

INFORMATIKA javítókulcs 2016

8. Előadás tartalma. Funkcionális függőségek

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:

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós szeptember 27. Széchenyi István Egyetem, Gy r

Logikai szita (tartalmazás és kizárás elve)

Relációk. 1. Descartes-szorzat. 2. Relációk

Intelligens Rendszerek Elmélete IRE 4/32/1

Adatbázisok. 4. gyakorlat. Adatmodellezés: E-K modellb l relációs adatbázisséma. Kötelez programok kiválasztása szeptember 24.

Algoritmuselmélet 18. előadás

Online algoritmusok. Algoritmusok és bonyolultságuk. Horváth Bálint március 30. Horváth Bálint Online algoritmusok március 30.

Adatszerkezetek Bevezetés Adatszerkezet Adatszerkezet típusok Műveletek Bonyolultság

HÁZI FELADAT PROGRAMOZÁS I. évf. Fizikus BSc. 2009/2010. I. félév

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

Csima Judit november 15.

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

22. GRÁFOK ÁBRÁZOLÁSA

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

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

Algoritmusok és adatszerkezetek I. 1. előadás

Bevezetés a számításelméletbe (MS1 BS)

Algoritmuselmélet. Gráfok megadása, szélességi bejárás, összefüggőség, párosítás. Katona Gyula Y.

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

Programozási segédlet

Osztott algoritmusok

Átírás:

Gyakori elemhalmazok kinyerése Balambér Dávid Budapesti M szaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Számítástudomány szakirány 2011 március 11. Balambér Dávid (BME) Gyakori elemhalmazok 2011 március 11. 1 / 24

Tartalom 1 Gyakori elemhalmazok A probléma A gyakori elemhalmaz fogalma Tárolás és ábrázolás 2 Gyakori elemhalmaz kinyerési algoritmusok Egyszer algoritmusok Apriori algoritmus Az Eclat és az FP-Growth algoritmus Balambér Dávid (BME) Gyakori elemhalmazok 2011 március 11. 2 / 24

A probléma Vásárlói szokások Gyakran vásárolt termékek Nagy prot Gyakran együtt vásárolt termékek Nagy prot Egyik árát (AKCIÓ), másik árát érdemes vizsgálni ket Balambér Dávid (BME) Gyakori elemhalmazok 2011 március 11. 3 / 24

Tartalom 1 Gyakori elemhalmazok A probléma A gyakori elemhalmaz fogalma Tárolás és ábrázolás 2 Gyakori elemhalmaz kinyerési algoritmusok Egyszer algoritmusok Apriori algoritmus Az Eclat és az FP-Growth algoritmus Balambér Dávid (BME) Gyakori elemhalmazok 2011 március 11. 4 / 24

Gyakori elemhalmaz Elemek halmaza: I = {i 1, i 2,..., i m } termékek Tranzakciók (bemeneti sorozat): T = t 1, t 2,..., t n, ahol t j I (I hatványhalmaza felett értelmezett sorozat) vásárlások (termékhalmazok) I I elemhalmaz fedése: azon tranzakciók, melyek részhalmaza I egy termékhalmazt tartalmazó vásárlások Az I elemhalmaz támogatottsága: a fedésének elemszáma, supp(i ) egy termékhalmazt hány vásárlás tartalmaz Az I elemhalmaz gyakori elemhalmaz, ha supp(i ) > min_supp, ahol min_supp a támogatottsági küszöb egy termékhalmazt legalább min_supp darab vásárlás tartalmaz Az I elemhalmaz gyakorisága: freq(i ) = supp(i ) T Balambér Dávid (BME) Gyakori elemhalmazok 2011 március 11. 5 / 24

Feltételezések I elemein deniálhatunk rendezést: ABCDEF... azonosító szerint, pl. vonalkód a tranzakciók elemeit rendezve tároljuk: {A, C, D}, {B, C, E}, {A, B, C, E}, {B, E} ACD, BCE, ABCE, BE a vásárlásokkor rendezzük az azonos elemszámú elemhalmazok lexikograkusan rendezhet k: ACD, ABD, ADE, ACE ABD, ACD, ACE, ADE Balambér Dávid (BME) Gyakori elemhalmazok 2011 március 11. 6 / 24

Tartalom 1 Gyakori elemhalmazok A probléma A gyakori elemhalmaz fogalma Tárolás és ábrázolás 2 Gyakori elemhalmaz kinyerési algoritmusok Egyszer algoritmusok Apriori algoritmus Az Eclat és az FP-Growth algoritmus Balambér Dávid (BME) Gyakori elemhalmazok 2011 március 11. 7 / 24

Adattárolási módok Horizontális: a tranzakciókhoz tároljuk az elemek listáját ABCD 1 AB 1100 2 BD 0101 3 BCD 0111 4 ABCD 1111 Vertikális: az elemekhez tároljuk a tranzakciók listáját 1234 A 14 1001 B 1234 1111 C 34 0011 D 234 0111 Balambér Dávid (BME) Gyakori elemhalmazok 2011 március 11. 8 / 24

Adattárolási módok Relációs: rögzített számú attribútum, több a többhöz kapcsolat R TE : T E 1 A 1 B 2 B 2 D 3 A 3 B 3 C 4 A 4 B 4 C 4 D Elemek (termékek) adatai: R E : E ID Név... A...... B...... C...... D...... Tranzakciók (vásárlások) adatai: R T : T ID Id... 1...... 2...... 3...... 4...... Balambér Dávid (BME) Gyakori elemhalmazok 2011 március 11. 9 / 24

Ábrázolási módok Bináris mátrix: ABCD 1 1100 2 0101 3 0111 4 1111 Páros gráf, G = (I, T, R): Balambér Dávid (BME) Gyakori elemhalmazok 2011 március 11. 10 / 24

Tartalom 1 Gyakori elemhalmazok A probléma A gyakori elemhalmaz fogalma Tárolás és ábrázolás 2 Gyakori elemhalmaz kinyerési algoritmusok Egyszer algoritmusok Apriori algoritmus Az Eclat és az FP-Growth algoritmus Balambér Dávid (BME) Gyakori elemhalmazok 2011 március 11. 11 / 24

Egyszer algoritmusok Nagyságrendek a gyakorlatban: Elemek száma I = m, akár 10 5 10 6 Tranzakciók száma T = n, akár 10 9 10 10 gyakori elemhalmazok mérete I tj I Naiv módszer: Határozzuk meg minden elemhalmaz támogatottságát O(2 m ) féle elemhalmaz mindegyikre végig kell nézni az összes tranzakciót Balambér Dávid (BME) Gyakori elemhalmazok 2011 március 11. 12 / 24

Egy konkrét egyszer algoritmus Végigolvassuk a tranzakciókat Minden tranzakcióra létrehozunk az összes részhalmazához egy-egy számlálót ha valamely részhalmazra már van számláló, akkor azt növeljük a számláló a támogatottságot jelzi Az algoritmus lépésszáma IO szempontjából optimális nagy elemszámú tranzakcióra túl sok számláló kellene: 2 t j darab Javítások csak bizonyos méret elemhalmazok vizsgálata (nem teljes) számlálók szófában tárolása (számláló elérés O( t j )) Balambér Dávid (BME) Gyakori elemhalmazok 2011 március 11. 13 / 24

Általános algoritmusok felépítése A három lépés jelöltek állítása: J = {j} támogatottságuk meghatározása: supp(j) gyakoriak kiválasztása: GY = {j supp(j) min_supp} A három lépés ismétl dik A jelölt-állítás ismétlés nélküli A különbség az algoritmusok között: a jelöltek el állításának módja a támogatottság meghatározásának módja A tranzakciók elemei rendezetten állnak rendelkezésre pl. minden vásárlásnál rendezzük Balambér Dávid (BME) Gyakori elemhalmazok 2011 március 11. 14 / 24

Tartalom 1 Gyakori elemhalmazok A probléma A gyakori elemhalmaz fogalma Tárolás és ábrázolás 2 Gyakori elemhalmaz kinyerési algoritmusok Egyszer algoritmusok Apriori algoritmus Az Eclat és az FP-Growth algoritmus Balambér Dávid (BME) Gyakori elemhalmazok 2011 március 11. 15 / 24

Apriori algoritmus Iterációk: egyre nagyobb méret elemhalmazok vizsgálata Gyakori elemhalmaz minden részhalmaza gyakori Csak az olyan elemhalmaz lehet gyakori, melynek részhalmazai gyakoriak Legyenek azok jelöltek, amelyek minden ismert részhalmaza gyakori Kezdetben l = 0, J l = { } Balambér Dávid (BME) Gyakori elemhalmazok 2011 március 11. 16 / 24

Jelöltek el állítása Az l-elem I 1, I 2 halmazokból l + 1 elem el állítása, ha: I 1 < I 2 (lexikograkus rendezés szerint) I 1 és I 2 csak utolsó tagjukban térnek el egymástól I 1 I 2 jelölt lesz, ha minden valódi részhalmaza gyakori ha minden l elem részhalmaz gyakori, akkor minden valódi részhalmaza is Pl. GY 3 = (ABC, ABD, ACD, ACE, BCD) ABCD jelölt lesz ACDE nem lesz jelölt Csak a jelöltek lehetnek gyakoriak ugyanis ahhoz hogy egy l + 1 elem elemhalmaz gyakori lehessen, az összes l elem részhalmazoknak gyakoriaknak kell lenniük ekkor viszont az l + 1 elem elemhalmaz el áll a fenti két szabály betartásával, azaz jelölt lesz Balambér Dávid (BME) Gyakori elemhalmazok 2011 március 11. 17 / 24

Támogatottság meghatározása A tranzakciókat mindenképp végig kell olvasni Egyelem jelöltek esetén: Egy tömbben tároljuk az egyes elemek támogatottságát Kételem jelöltek esetén: Kétdimenziós tömbben tároljuk az egyes elemek támogatottságát Általános esetben: Sok jelölt esetén lassú: minden jelöltre külön kell végignézni a tranzakciókat Balambér Dávid (BME) Gyakori elemhalmazok 2011 március 11. 18 / 24

Támogatottság meghatározása szófával A jelöltek támogatottságát szófában tároljuk Minden tranzakció beolvasásánál végigmegyünk a szófa megfelel részein a tranzakciókon csak egyszer megyünk végig a gyakorlatban gyorsabb a jelöltek szófában tárolása A támogatottság-meghatározás után töröljük a min_supp-nál kisebb támogatottságú leveleket Balambér Dávid (BME) Gyakori elemhalmazok 2011 március 11. 19 / 24

Jelöltállítás szófával A szófa prex a közös s levelek uniója megfelel jelölt ha teljesül, hogy a részhalmazai gyakoriak (ezt le kell ellen rizni) Tehát az algoritmus egy szófát épít, egy iteráció lépései: Jelöltek támogatottságának meghatározása Nem gyakori levelek törlése Új jelöltek létrehozása közös s jelöltekb l Nem gyakori jelöltek törlése gyorsítási lehet ség: Jelöltek támogatottságának meghatározása Új jelöltek létrehozása közös s gyakori jelöltekb l a két lépés összevonható egy szófa-bejárásra Balambér Dávid (BME) Gyakori elemhalmazok 2011 március 11. 20 / 24

További szófa gyorsítási lehet ségek A lexikograkus rendezés választása Egy szófa memóriaigényének minimalizálása a rendezés megfelel választásával NP-nehéz probléma A gyakorlati tapasztalatok alapján az elemgyakoriság szerint növekv sorrendet érdemes választani, ennek el nyei: a szófa pontjaiból kevesebb él indul ki a gyökérhez közelebb vannak a ritka elemek A ritka elemekkel kevesebb tranzakció fog egyezni, a szófa kisebb részét járjuk be gyorsabb Zsákutca nyesés Olyan csúcsok (részfák) törlése amelyek egyik gyereke se gyakori Jelöltállításkor ha preorder járjuk be a szófát, akkor nyugodtan törölhetjük ket Balambér Dávid (BME) Gyakori elemhalmazok 2011 március 11. 21 / 24

További Apriori gyorsítási lehet ségek Ritka elemek sz rése a tranzakciók els végigolvasáskor megállapítjuk a gyakori elemeket majd a nem gyakori elemeket törölhetjük a tranzakciókból Túl kis elemszámú tranzakciók törlése az l -edik iterációnál törölhetjük az l -nél nem nagyobb elemszámú tranzakciókat Töröljük a tranzakciót ha nem tartalmaz jelöltet Ha nincs benne jelölt, akkor nem tartalmazhat már nagyobb gyakori elemhalmazt A tranzakcióban lev jelölteken kívüli elemeket töröljük Pl. J 3 = {ABC, ABD, BCD, FGH} esetén t = ABCDH ABCD t = ABCGH ABC Balambér Dávid (BME) Gyakori elemhalmazok 2011 március 11. 22 / 24

Tartalom 1 Gyakori elemhalmazok A probléma A gyakori elemhalmaz fogalma Tárolás és ábrázolás 2 Gyakori elemhalmaz kinyerési algoritmusok Egyszer algoritmusok Apriori algoritmus Az Eclat és az FP-Growth algoritmus Balambér Dávid (BME) Gyakori elemhalmazok 2011 március 11. 23 / 24

Az Eclat és az FP-Growth algoritmus Az Eclat rekurzív, mélységi jelleg bejárást valósít meg mindig egyetlen l méret jelöltet állít el két l 1 méret b l és rögtön meghatározza a támogatottságát TID-halmaz: Pl. AD, AC, ABCD, B, AD, ABD, D bemenetre TID(AC) = (2, 3) egy I elemhalmaz TID halmazának mérete megadja I támogatottságát egy jelölt TID-halmaza megkapható a generátorainak TID-halmazának metszeteként: TID(ACD) = TID(AC) TID(AD) = (2, 3) (1, 3, 5, 6) = (3) Az FP-Growth szintén rekurzív, mélységi bejárást használ Elemhalmaz vetítése: Pl. ACD, BCE, ABCE, BE B = CE, ACE, E El ször kisz ri a nem gyakori elemeket A sz rt tranzakciókat vetíti gyakori elemekre A vetített tranzakciókra rekurzív hívást végez Balambér Dávid (BME) Gyakori elemhalmazok 2011 március 11. 24 / 24