adatbányászat - gyakori elemhalmazok asszociációs és...
TRANSCRIPT
Vásárlói kosarakGyakori elemhalmazok
FP-growth
AdatbányászatGyakori elemhalmazok
Asszociációs és döntési szabályok
Szegedi Tudományegyetem
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Mire megyünk a gyakori elemhalmazokkal?
A különféle adatbázisokban gyakran együttesen előfordulójellemzők ismerete hasznos lehetMit kezd vele egy marketinges? És az adatbányász?
Tranzakció ID Termékek1 {tej, kenyér, Hertz szalámi}2 {sör, pelenka}3 {sör, virsli}4 {sör, bébiétel, pelenka}5 {pelenka, kóla, kenyér}
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Vásárlói kosarak megjelenési formái – Horizontális tárolás
Tranzakció ID Termékek1 {tej, kenyér, Hertz szalámi}2 {sör, pelenka}3 {sör, virsli}4 {sör, bébiétel, pelenka}5 {pelenka, kóla, kenyér}
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Vásárlói kosarak megjelenési formái – Vertikális/invertálttárolás
Termék Kosaraktej {1}
kenyér {1, 5}Hertz szalámi {1}
sör {2,3,4}pelenka {2,4,5}virsli {3}
bébiétel {4}kóla {5}
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Vásárlói kosarak megjelenési formái – Relációs tárolás
Kosár Termék1 tej1 kenyér1 Hertz szalámi2 sör2 pelenka3 sör3 virsli4 sör4 bébiétel4 pelenka5 pelenka5 kóla5 kenyér
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Asszociációs szabályokFölhasználásukApriori elvMeghatározásuk
Asszociációs szabályok legyűjtése
Cél: T tranzakciós adatbázis jellemzőinek (termékeinek) azondiszjunkt részhalmazainak meghatározása, melyek együttestámogatottsága (support) meghalad egy gyakoriságikü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) magasX halmaz támogatottsága: s(X ) = |{ti |ti ∈ T ∧ X ⊆ ti}|Relatív támogatottság: s(X ) normalizálása a tranzakciósadatbázis sorainak számávalA→ 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 bennevannak A elemei, úgy az valószínű B-t is tartalmazni fogja
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Asszociációs szabályokFölhasználásukApriori elvMeghatározásuk
Asszociációs szabályok é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ólfü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 magasabszolút értékkel jellemzett szabályok lesznek. Miért?)A küszöbszámok olyanok legyenek, hogy a megkapott érdekesszabályok feldogozhatók legyenekTovábbi érdekességi mutatók: χ2, κ, . . .
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Asszociációs szabályokFölhasználásukApriori elvMeghatározásuk
Hol lehet még használni a gyakori elemhalmazokat? –Plágiumellenőrzés
Intuíciónkkal ellentétben legyenek a kosaraink mondatok, atermékek pedig a dokumentumokKonklúzió
A "termékek" alkotta "kosarak" és a "tartalmazás" fogalmátrugalmasan kell kezelniTermékek közötti függést vizsgáljuk, nem a kosarak közöttihasonlóságot (azt már letudtuk korábban)Milyen jelentést társíthatunk a gyakorielemhalmazoknak/asszociációs szabályoknak, ha a kosarak adokumentumok, és a termékek a mondatok?
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Asszociációs szabályokFölhasználásukApriori elvMeghatározásuk
Hol lehet még használni a gyakori elemhalmazokat? –Adatbányászat
Asszociációs szabályok segítségével kezdetleges osztályozótépíthetünkHiányzó adatokat becsülhetünk meg a változók gyakoriegyüttállásábólVáltozókat vonhatunk össze, ha azok túlzott (teljes) egyezéstmutatnak
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Asszociációs szabályokFölhasználásukApriori elvMeghatározásuk
Az aszociációs szabályok legyártásának sémája
t (relatív) gyakorisági küszöböt meghaladó gyakorielemhalmazok F halmazának legyűjtéseA gyakori elemhalmazok particionálása (diszjunktrészhalmazokra bontása), bizonyosságuk mértékének vizsgálata
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Asszociációs szabályokFölhasználásukApriori elvMeghatározásuk
Miért nem működik a naiv megközelítés?
Mi lenne a naiv megközelítés?d termék ⇒ 3d − 2d+1 + 1 jelölt (pl. d = 9⇒ 18660lehetőség)
Bizonyítás (hint: (1+ x)d =d∑
j=1
(dj
)xd−j + xd)
d∑i=1
(di
)d−i∑j=1
(d−ij
)=
d∑i=1
(di
)(2d−i − 1) =
d∑i=1
(di
)2d−i −
d∑i=1
(di
)=
(3d − 2d)− (2d − 1)
2 4 6 8 10 12 14
0
1
2
3
4
5·106
d
lehetséges
asszociációs
szabályok
2 4 6 8 10 12 140
2
4
6
d
log 1
0(lehetséges
asszociációs
szabályok)
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Asszociációs szabályokFölhasználásukApriori elvMeghatározásuk
A segítség – Apriori elv
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}
∅
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Asszociációs szabályokFölhasználásukApriori elvMeghatározásuk
Az Apriori elv érvényesülése
Legyen 3 a gyakorisági küszöbértékünk
Termék Gyakoriságsör 3
kenyér 4kóla 2
pelenka 4tej 4virsli 1
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Asszociációs szabályokFölhasználásukApriori elvMeghatározásuk
Az Apriori elv érvényesülése
Legyen 3 a gyakorisági küszöbértékünk
Termék Gyakoriságsör 3
kenyér 4kóla 2
pelenka 4tej 4virsli 1
Termékek Gyakoriság{kenyér, sör} 2
{pelenka, sör} 3{sör, tej} 2
{kenyér, pelenka} 3{kenyér, tej} 3{pelenka, tej} 3
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Asszociációs szabályokFölhasználásukApriori elvMeghatározásuk
Gyakori elemhalmazok meghatározása
Algorithm 1 Gyakori elemhalmazok számításának pszeudokódjaInput: U termékuniverzum, T tranzakciós adatbázis, t gyakorisági
küszöbértékOutput: gyakori elemhalmazok1: C1 := U2: Számítsuk ki C1 elemeinek támogatottságait3: F1 := {x |x ∈ C1 ∧ s(x) ≥ t}4: for (k = 2; k < |U|&&Fk−1 6= ∅; k ++) do5: Ck meghatározása Fk−1 elemeiből6: Ck elemeinek támogatottságának számítása7: Fk := {X |X ∈ Ck ∧ s(X ) ≥ t}8: end for9: return ∪ki=1Fi
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Asszociációs szabályokFölhasználásukApriori elvMeghatározásuk
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 nemgenerál fölöslegesen többször elemhalmazokat, csak akkor vonössze, ha∃A = {a1, a2, . . . , ak−1} ∈ Fk−1,B = {b1, b2, . . . , bk−1} ∈Fk−1 : ∀ai = bi , 1 ≤ i ≤ k − 2 ∧ ak−1 6= bk−1
F elemein megéri értelmezni egy rendezést (pl. egészekkéleképezni őket), és így tárolni őket
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Asszociációs szabályokFölhasználásukApriori elvMeghatározásuk
Ck gyakoriságának számításának módja
(|Fk−1|2
)lehetséges elempáros gyakoriságát kell számon tartani
→ memóriakorlátA 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 calkalommal láttukEgydimenziós háromszögmátrixban (i , j), i ≤ j elempárokgyakorisága a t = (i − 1)(|Fk−1| − i
2) + j − i pozíción. Miért?
Ha a nulla elemek száma meghaladja (|Fk−1|2 )3 -t, akkor megéri
az (i , j , c) hármasokkal történő reprezentáció
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Asszociációs szabályokFölhasználásukApriori elvMeghatározásuk
Ck gyakoriságának számításának módja – példa
Tfh. van 107 kosár, kosaranként 10 termékkel105 lehetséges termék kaphatóHáromszögmátrixszal ≈ 5 ∗ 109 egésszel írhatjuk le azelempárok gyakoriságátIndex-gyakoriság hármasokkal legrosszabb esetben is csak107(10
2
)termékpáros van jelen a tranzakciós adatbázisban
→ max . ≈ 3 ∗ 4, 5 ∗ 108 = 1, 35 ∗ 109 egésszel leírhatók anemnulla elempárok vásárlásainak gyakoriságai
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Asszociációs szabályokFölhasználásukApriori elvMeghatározásuk
Gyakori elemhalmazok 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éknekeleget tevő zárt elemhalmazok halmazaLehet-e egy maximális gyakori elemhalmaz nem zárt?Lehet-e egy zárt gyakori elemhalmaz nem maximális?
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Asszociációs szabályokFölhasználásukApriori elvMeghatározásuk
Gyakori elemhalmazok tömör definiálása – Példa(küszöbérték = 3)
Elem Darab Maximális Zárt Gyakori zártA 4B 5C 3AB 4AC 2BC 3ABC 2
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Asszociációs szabályokFölhasználásukApriori elvMeghatározásuk
Gyakori elemhalmazok tömör definiálása – Példa(küszöbérték = 3)
Elem Darab Maximális Zárt Gyakori zártA 4 - - -B 5 - + +C 3 - - -AB 4 + + +AC 2 - - -BC 3 + + +ABC 2 - + -
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Asszociációs szabályokFölhasználásukApriori elvMeghatározásuk
A gyakori elemhalmaztípusok viszonyai
Gyakori elemhalmazok
Zárt gyakori elemhalmazok
Maximális gyakorielemhalmazok
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Asszociációs szabályokFölhasználásukApriori elvMeghatározásuk
PCY (Park-Chen-Yu) algoritmus – az Apriori kiterjesztése
Az egyelemű halmazok gyakoriságának számolásávalegyidejűleg tartsunk fenn egy számlálót, ami az elempárokhatványhalmazainak bizonyos részhalmazainak aggregáltelőfordulásait tartja számonMit tudunk biztosra az aggregált előfordulási gyakoriságokból?Mit nem tudunk?Csak azokat a kételemű halmazokat kell ténylegesgyakoriságuk szerint megvizsgálni, amelyek alkotóelemeigyakoriak, valamint olyan kupacba képeződtek le, amelyaggregált gyakorisága meghaladja a gyakorisági küszöbértéket
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Asszociációs szabályokFölhasználásukApriori elvMeghatározásuk
Gyakorlati észrevételek
Mintavételezéssel is becsülhetjük a támogatottságot ⇒helyességet, teljességet ekkor persze kockáztatjukA tranzakciós adatbázis struktúrájától függően módosítottstratégiák is elképzelhetők
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Asszociációs szabályokFölhasználásukApriori elvMeghatározásuk
Apriori általánosítása
Kosárkezdemények szintek szerinti bővítési stratégiájánaklecseréléseApriori elv érvényesítése ekvivalenciaosztályonként haladvaAz eredeti felállásban az ekvivalenciaosztályok a termék n-esekmérete alapján történtAlternatív megközelítés: átfedő prefix vagy szuffix méterealapján
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Asszociációs szabályokFölhasználásukApriori elvMeghatározásuk
Apriori általánosítása – prefix és szuffix szemlélet
null
AB AC AD BC BD CD
A B C D
ABC ABD ACD BCD
ABCD
null
AB AC ADBC BD CD
A B C D
ABC ABD ACD BCD
ABCD
(a) Prefix fa (b) Szuffix fa
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
FP-fák
Apriori elv helyett olyan adatszerkezet használata, amelybőlkönnyen kinyerhetők a gyakori elemhalmazokFP-fák: alternatív, tömörített reprezentációs lehetőségElőállíthatók a tranzakciós adatbázis sorainak egyszerifeldolgozása segítségévelAz egyes kosarak a fában egy-egy útként jelennek megEgyes termékek több kosárban is szerepet kapnak ⇒ átfedőutak ⇒ tömöríthetőségSzerencsés esetben az egész adatbázis a memóriában tartható
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
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 vanaz adott kosár prefixével megegyező szelete, akkor azt az ágatfolytatjuk
Az átfedő csúcsokhoz tartozó gyakorisági értékekinkrementá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ételeA 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
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
FP-fa – példa
1
1Tan, Steinbach, Kumar: Introduction to Data Mining diái alapján
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
FP-fa – utolsó kosár feldolgozása után
TID Kosár1 {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}
∅
A:7
B:5
C:3
D:1
D:1
C:1
D:1
E:1
D:1
E:1
B:3
C:3
D:1 E:1
Milyen fákat kapnánk, ha a kosarakban lévő termékeket atranzakciós adatbázisbeli támogatottságukkal egyező/fordítottsorrendben ábrázolnánk? ({A:7,B:8,C:7,D:5,E:3})
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
FP-Growth algoritmus
FP-fán bottom-up elven működő oszd meg és uralkodj eljárásHa egy elemhalmazról az FP-fa alapján megállapítható, hogygyakori, vizsgáljuk meg az adott halmazt szuffixkénttartalmazó bővebb halmazokat
A már bizonyosan gyakori részhalmazon kondicionált FP-részfavizsgálatával eldönthető ez a kérdésPl. {E}-ről megállapítható, hogy gyakori volt, úgy vizsgáljukmeg, hogy {A,E}, {B,E}, {C,E}, {D,E} halmazok közötttalálunk-e gyakoriakat
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Célelem(ek)re kondicionált FP-fa
A teljes FP-fának azon része, amit akkor kapnánk, ha csak acélelem(ek)et tartalmazó tranzakciókat vennénk figyelembe
Persze nem akarjuk újraépíteni a fát1 Fejtsük le az adott célelem(ek)re nézve ”érdektelen” részeket
TID Kosár1 {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}
∅
A:7
C:1
D:1
E:1
D:1
E:1
B:3
C:3
E:1
Az {E}-n kondicionált FP-fa
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Célelem(ek)re kondicionált FP-fa
A teljes FP-fának azon része, amit akkor kapnánk, ha csak acélelem(ek)et tartalmazó tranzakciókat vennénk figyelembe
Persze nem akarjuk újraépíteni a fát2 Egy csúcs szupportja legyen a fiai frissített szupportjainak
összege
TID Kosár...
...3 {A,C,D,E}4 {A,D,E}...
...10 {B,C,E}
∅
A:2
C:1
D:1
D:1
B:1
C:1
Az {E}-n kondicionált FP-fa
Adatbányászat
Vásárlói kosarakGyakori elemhalmazok
FP-growth
Célelem(ek)re kondicionált FP-fa
A teljes FP-fának azon része, amit akkor kapnánk, ha csak acélelem(ek)et tartalmazó tranzakciókat vennénk figyelembe
Persze nem akarjuk újraépíteni a fát3 Küszöbszámot meg nem haladó összgyakoriságú elemek
elhagyása (pl. 2-es küszöb alkalmazása mellett)4 Készítsük el a(z {E}-t tartalmazó) gyakori elemketteseken
kondicionált FP-fákat, ami alapján meghatározhatjuk agyakori elemhármasokat (pl. {D,E}→ {A,D,E})
TID Kosár...
...3 {A,C,D,E}4 {A,D,E}...
...10 {B,C,E}
∅
A:2
C:1
D:1
D:1
C:1
Az {E}-n kondicionált FP-faAdatbányászat