Adatbányászat: Asszociációs szabályok Haladó fogalmak és algoritmusok
7. fejezet
Tan, Steinbach, Kumar
Bevezetés az adatbányászatba előadás-fóliák
fordította
Ispány Márton
Logók és támogatás
A tananyag a TÁMOP-4.1.2-08/1/A-2009-0046 számú Kelet-magyarországi Informatika
Tananyag Tárház projekt keretében készült. A tananyagfejlesztés az Európai Unió
támogatásával és az Európai Szociális Alap társfinanszírozásával valósult meg.
Folytonos és kategorikus attributumok
Session Id
Ország Session hossz
(sec)
Megtekintett weblapok
száma
Nem Böngé-
sző Vétel
1 USA 982 8 Férfi IE Nem
2 Kína 811 10 Nő Netscape Nem
3 USA 2125 45 Nő Mozilla Igen
4 Németo. 596 4 Férfi IE Igen
5 Ausztrá-
lia 123 9 Férfi Mozilla Nem
… … … … … … …
10
Példa asszociációs szabályra:
{Lapok száma [5,10) (Böngésző=Mozilla)} {Vétel = Nem}
Hogyan alkalmazhatjuk az asszociációs elemzést nem
aszimmetrikus bináris változókra?
Kategorikus attributumok kezelése
Alakítsuk át a kategorikus attributumot aszimmetrikus bináris változókká.
Vezessünk be egy új ,,tételt” minden egyes különböző attributum-érték párra.
– Példa: helyettesítsük a Böngésző attributumot az alábbiakkal
Böngésző = Internet Explorer
Böngésző = Mozilla
Böngésző = Mozilla
Kategorikus attributumok kezelése
Lehetséges szempontok
– Mi van akkor, ha az attributumnak sok lehetséges értéke van?
Példa: az országnak több, mint 200 lehetséges értéke van
Az attributum értékek többségének nagyon kicsi lehet a támogatottsága
– Lehetséges megoldás: vonjuk össze a kis támogatottságú értékeket
– Mi van akkor, ha az attributum értékek eloszlása erősen ferde?
Példa: a látogatók 95%-nál a Vétel = Nem
A tételek többségét a (Vétel=Nem) tételhez fogjuk asszociálni.
– Lehetséges megoldás: dobjuk el a nagy gyakoriságú tételeket
Folytonos attributumok kezelése
Különböző fajta szabályok:
– Kor[21,35) Fizetés[70E,120E) Vétel – Fizetés[70E,120E) Vétel Kor: =28, =4
Különböző módszerek:
– Diszkretizáció alapú – Statisztika alapú
– Nem diszkretizáció alapú
minApriori
Folytonos attributumok kezelése
Diszkretizáljunk
Nem-felügyelt módon:
– Egyenlő szélességű – Egyenlő mélységű – Klaszterezés
Felügyelt módon:
Osztály v
1v
2v
3v
4v
5v
6v
7v
8v
9Rendellenes 0 0 20 10 20 0 0 0 0
Normális 15 0
100 0 0 0 100 100 150 100
bin 1 bin 2 bin 3
Attributum értékek, v
Diszkretizációval kapcsolatos kérdések
A diszkretizált intervallumok mérete hatással van a támogatottságra és a megbízhatóságra.
– Ha az intervallum túl kicsi
lehet, hogy nem elegendő a támogatottság
– Ha az intervallum túl nagy
lehet, hogy nem elegendő a megbízhatóság
Lehetséges megoldás: használjuk az összes lehetséges intervallumot.
{Visszafizetés = Nem, (Jövedelem = $51,250)} {Csalás = Nem}
{Visszafizetés = Nem, (60K Jövedelem 80K)} {Csalás = Nem}
{Visszafizetés = Nem, (0K Jövedelem 1B)} {Csalás = Nem}
Diszkretizációval kapcsolatos kérdések
Végrehajtási idő
– Ha az intervallumok n értéket tartalmaznak, akkor átlagosan O(n 2 ) számú elrendezés van.
Túl sok szabály
{Visszafizetés = Nem, (Jövedelem = $51,250)} {Csalás = Nem}
{Visszafizetés = Nem, (51K Jövedelem 52K)} {Csalás = Nem}
{Visszafizetés = Nem, (50K Jövedelem 60K)} {Csalás = Nem}
Srikant & Agrawal megközelítése
Dolgozzuk fel előzetesen az adatokat.
– Diszkretizáljuk az attributumot egyenlő mélységű particionálást használva.
A particiók meghatározására használjunk részleges teljességi mérőszámot.
Vonjuk össze a szomszédos intervallumokat amíg a támogatottság kisebb, mint egy max-support küszöb.
Alkamazzunk létező asszociációs szabály bányászati algoritmusokat.
Határozzuk meg az érdekes szabályokat az
outputban.
Srikant & Agrawal megközelítése
A diszkretizáció során információt vesztünk
– Használjunk részleges teljességi mérőszámot annak meghatározására, hogy mennyi információt vesztünk.
C: az összes attributum érték elrendezése mellett kapott gyakori tételcsoportok
P: a particiók elrendezése mellett kapott gyakori tételcsoportok P K-teljes C-re nézve ha P C és X C, X’ P úgy, hogy:
1. X’ általánosítása X-nek és s(X’) K s(X) (K 1) 2. Y X, Y’ X’ úgy, hogy s(Y’) K s(Y)
Adott K (részleges teljességi szint) mellett meghatározhatjuk az intervallumok (N) számát.
X
közelítő X
Érdekességi mértékek
Adott Z = {z 1 , z 2 , …, z k } tételcsoport és Z’ = {z 1 ’, z 2 ’, …, z k ’} általánosítása
P(Z): Z támogatottsága
E Z’ (Z): Z-nek Z’-n alapuló várt támogatottsága
– Z R-érdekes Z’-re nézve ha P(Z) R E
Z’(Z)
{Visszafizetés = Nem, (Jövedelem = $51,250)} {Csalás = Nem}
{Visszafizetés = Nem, (51K Jövedelem 52K)} {Csalás = Nem}
{Visszafizetés = Nem, (50K Jövedelem 60K)} {Csalás = Nem}
) ' ( )
' (
) ( )
' (
) ( )
' (
) ) (
(
2 2
1 1
'
P Z
z P
z P z
P z P z
P z Z P
E
k k
Z
Érdekességi mértékek
Egy S: X Y és annak S’: X’ Y’ általánosítására
P(Y|X): X Y megbízhatósága P(Y’|X’): X’ Y’ megbízhatósága
E S’ (Y|X): Z-nek Z’-n alapuló várt támogatottsága
Az S szabály R-érdekes az S’ ős-szabályra nézve
– Támogatottság: P(S) R E
S’(S) vagy – Megbízhatóság: P(Y|X) R E
S’(Y|X)
) '
|' ( )
' (
) (
) ' (
) (
) ' (
) ) (
| (
2 2
1
1
P Y X
y P
y P y
P y P y
P y X P
Y E
k
k
Statisztika alapú módszerek
Példa:
Böngésző=Mozilla Vétel=Igen Kor: =23
A szabály következménye egy statisztikáival jellemzett folytonos változóból áll:
– átlag, medián, szórás stb.
Megközelítés:
– Töröljük (ideiglenesen) a célváltozót a megmaradó adatokból.
– Alkalmazzunk létező gyakori tételcsoport generálást a fennmaradó adatokon.
– Számoljuk ki minden gyakori tételcsoportra a megfelelő célváltozó leíró statisztikáit.
A gyakori tételcsoport szabály lesz ha a célváltozót a szabály következményének választjuk.
– Alkalmazzunk statisztikai próbát a szabály érdekességének
meghatározására.
Statisztika alapú módszerek
Hogyan határozhatjuk meg egy asszociációs szabály érdekességét?
– Hasonlítsuk össze a szabály által lefedett populáció statisztikáit a szabály által nem lefedettekéivel:
A B: szemben A B: ’
– Statisztikai hipotézis vizsgálat:
Null hipotézis: H0: ’ = +
Alternatív hipotézis: H1: ’ > +
Z várható értéke 0 szórása 1 a null hipotézis mellett
2 2 2 1
2 1
'
n s n
s Z
Statisztika alapú módszerek
Példa:
r: Böngésző=Mozilla Vétel=Igen Kor: =23
– A szabály érdekes ha a and ’ közötti különbség nagyobb mint 5 év (azaz = 5)
– Tegyük fel, hogy r-re n1 = 50, s1 = 3.5
– Tegyük fel, hogy r’-re (komplementer): n2 = 250, s2 = 6.5
– Egyoldali próbánál 95% megbízhatósági szinten a Z kritikus érték, hogy elvetjük a null hipotézist, 1.64.
– Mivel Z nagyobb mint 1.64, r érdekes szabály.
11 . 3 250
5 . 6 50
5 . 3
5 23 30
'
2 2
2 2 2 1
2 1
n s n
s
Z
Min-Apriori (Han és társai)
TID W1 W2 W3 W4 W5
D1 2 2 0 0 1
D2 0 0 1 2 2
D3 2 3 0 0 0
D4 0 0 1 0 1
D5 1 1 1 0 2
Példa:
W1 és W2 hajlamos rá, hogy ugyanazokban a dokumentumokban jelenjen meg
Dokumentum-szó mátrix:
Min-Apriori
Az adatok kizárólag ugyanolyan típusú folytonos attributumokat tartalmaznak.
– Pl. a szavak gyakorisága egy dokumentumban
Lehetséges megoldás:
– Alakítsuk át 0/1 mátrixá és ezután alkalmazzunk létező algoritmusokat.
szó-gyakorisági információk elvesztése
– Nem alkalmazható a diszkretizálás amint a felhasználók szavak közötti és nem szó-csoportok közötti asszociációt szeretnének.
TID W1 W2 W3 W4 W5
D1 2 2 0 0 1
D2 0 0 1 2 2
D3 2 3 0 0 0
D4 0 0 1 0 1
D5 1 1 1 0 2
Min-Apriori
Hogyan határozzuk meg egy szó támogatottságát?
– Ha csak egyszerűen összeadjuk a gyakoriságokat,
akkor a támogatottság nagyobb lesz a dokumentumok teljes számánál!
Normalizáljuk a szó vektorokat – pl. használjunk L
1normát
Minden szónak 1.0-gyel egyenlő támogatottsága lesz
TID W1 W2 W3 W4 W5
D1 2 2 0 0 1
D2 0 0 1 2 2
D3 2 3 0 0 0
D4 0 0 1 0 1
D5 1 1 1 0 2
TID W1 W2 W3 W4 W5 D1 0.40 0.33 0.00 0.00 0.17 D2 0.00 0.00 0.33 1.00 0.33 D3 0.40 0.50 0.00 0.00 0.00 D4 0.00 0.00 0.33 0.00 0.17 D5 0.20 0.17 0.33 0.00 0.33
Normali-
záljunk
Min-Apriori
A támogatottság új definíciója:
T
i j C
D i j
C ) ( , )
sup( min
Példa:
sup(W1,W2,W3)
= 0 + 0 + 0 + 0 + 0.17
= 0.17
TID W1 W2 W3 W4 W5
D1 0.40 0.33 0.00 0.00 0.17
D2 0.00 0.00 0.33 1.00 0.33
D3 0.40 0.50 0.00 0.00 0.00
D4 0.00 0.00 0.33 0.00 0.17
D5 0.20 0.17 0.33 0.00 0.33
A támogatottság anti-monoton tulajdonsága
Példa:
sup(W1) = 0.4 + 0 + 0.4 + 0 + 0.2 = 1
sup(W1, W2) = 0.33 + 0 + 0.4 + 0 + 0.17 = 0.9 sup(W1, W2, W3) = 0 + 0 + 0 + 0 + 0.17 = 0.17
TID W1 W2 W3 W4 W5
D1 0.40 0.33 0.00 0.00 0.17
D2 0.00 0.00 0.33 1.00 0.33
D3 0.40 0.50 0.00 0.00 0.00
D4 0.00 0.00 0.33 0.00 0.17
D5 0.20 0.17 0.33 0.00 0.33
Többszintű asszociációs szabályok
Food
Bread
Milk
Skim 2%
Electronics
Computers Home
Desktop Laptop Wheat White
Foremost Kemps
DVD TV
Printer Scanner
Accessory
Többszintű asszociációs szabályok
Miért kell fogalom hierarchiát bevezetni?
– Az alacsonyabb szinten lévő szabályoknak lehet, hogy nem elég nagy a támogatottsága ahhoz, hogy egy gyakori tételcsoportban megjelenjenek.
– Az alacsonyabb szinten lévő szabályok túlságosan speciálisak
pl. lefölözött tej fehér kenyér, 2% tej búza kenyér, lefölözött tej búza kenyér, stb.
a tej és kenyér közötti kapcsolatra utalnak
Többszintű asszociációs szabályok
Hogyan változik a támogatottság és a
megbízhatóság ha megfordítjuk a fogalom hierarchiát?
– Ha X egyaránt szülője X1-nek és X2-nek, akkor
(X) ≤ (X1) + (X2)
– Ha (X1 Y1) ≥ minsup,
és X szülője X1-nek, Y szülője Y1-nek
akkor (X Y1) ≥ minsup, (X1 Y) ≥ minsup (X Y) ≥ minsup
– Ha conf(X1 Y1) ≥ minconf,
akkor conf(X1 Y) ≥ minconf
Többszintű asszociációs szabályok
1. megközelítés:
– Terjesszük ki a meglévő asszociációs szabály formalizmusunkat magasabb szintű tételek hozzáadásával.
Eredeti tranzakció: {lefölözött tej, búza kenyér}
Megnövelt tranzakció:
{lefölözött tej, búza kenyér, tej, kenyér, élelem}
Szempontok:
– A magasabb szinten elhelyezkedő tételeknek nagyobb a támogatottsága.
Ha alacsony a támogatottsági küszöb, akkor túl sok gyakori mintázat jön be a magasabb szintekről.
– Növeli az adatok dimenzióját.
Többszintű asszociációs szabályok
2. megközelítés:
– Generáljunk először gyakori mintázatokat a legmagasabb szinten.
– Generáljunk ezután gyakori mintázatokat a következő legmagasabb szinten, és így tovább.
Szempontok:
– Az I/O követelmények drámaian megnőnek mivel többször kell átfésülnünk az adatokat.
– Lemaradhatunk néhány lehetséges szintek közötti
asszociációs mintázatról.
Szekvenciális adatok
10 15 20 25 30 35
2 3 5
6 1
1
Timeline
Object A:
Object B:
Object C:
4 5 6
2 7
8 1 2
1 6
1 7 8
Objektum Időbélyeg Események
A 10 2, 3, 5
A 20 6, 1
A 23 1
B 11 4, 5, 6
B 17 2
B 21 7, 8, 1, 2
B 28 1, 6
C 14 1, 8, 7
Szekvenciális adatbázis:
Példák szekvenciális adatra
Sorozat adatbázis
Sorozat Elem
(Tranzakció)
Esemény (Tétel)
Vásárlói adatok
Egy adott vásárló vásárlási története
Egy vásárló által a t időpontban vásárolt termékek
Könyvek, naplók, CD- k, stb.
Web adatok Egy web-látogató böngészési aktivitása
A látogató egy kattintása után megnézett fájlok
Honlap, index-lap, kontakt info, stb.
Esemény adatok
Egy adott szenzor által generált események története
Egy szenzor által kiváltott események a t
időpontban
A szenzorok által generált riasztások típusai
Gén
szekvenciák
Egy faj DNS szekvenciája A DNS szekvencia egy eleme
A,T,G,C bázisok
Sorozat
E1
E2 E1
E3 E2 E3
E2 E4 Elem
(Tranzakció) Esemény
(Tétel)
A sorozat formális definíciója
Egy sorozat elemek (tranzakciók) egy rendezett listája
s = < e
1e
2e
3… >
– Minden elem események (tételek) egy összességét tartalmazza
e i = {i 1 , i 2 , …, i k }
– Minden elemhez idő vagy hely bélyeget rendelünk
Egy sorozat |s| hossza a sorozatbeli elemek száma.
Egy k-sorozat olyan sorozat, amely k eseményt
(tételt) tartalmaz.
Példák sorozatra
Web sorozat:
< {Honlap} {Elektronika} {Digitális kamerák} {Canon digitális kamera}
{Rendelés} {Rendelés visszaigazolás} {Visszatérés a vásárláshoz} >
A 3-mile Island-beli nukleáris balesetet elindító események sorozata:
(http://stellar-one.com/nuclear/staff_reports/summary_SOE_the_initiating_event.htm)
< {eldugult gyanta} {lefolyó szelep dugulás} {hűtővíz vesztés}
{kondenzátor tisztító lefolyó szelep elzáródás} {szivattyú hiba}
{fő vízpumpa hiba} {fő turbina hiba} {megnő a reaktornyomás}>
Egy könyvtárból kivett könyvek sorozata:
<{A gyűrű szövetsége} {A két torony} {A király visszatér}>
Részsorozat definíciója
Egy <a 1 a 2 … a n > sorozat része egy másik <b 1 b 2 … b m >
sorozatnak (m ≥ n) ha léteznek olyan i 1 < i 2 < … < i n számok, hogy a 1 b i1 , a 2 b i1 , …, a n b in .
Egy w részsorozat támogatottságát az olyan adatsoroza- tok arányaként definiáljuk, amelyek tartalmazzák w-t.
A szekvenciális mintázat egy gyakori részsorozat (azaz
egy olyan részsorozat, melynek támogatottsága ≥ minsup).
Adat sorozat Részsorozat Tartamazza-e?
< {2,4} {3,5,6} {8} > < {2} {3,5} > Igen
< {1,2} {3,4} > < {1} {2} > Nem
< {2,4} {2,4} {2,5} > < {2} {4} > Igen
Szekvenciális mintázat bányászat
Adott:
– sorozatok egy adatbázisa
– egy felhasználó által meghatározott minsup minimális támogatottsági küszöb
Feladat:
– Keressük meg az összes olyan részsorozatot,
amelynek támogatottsága ≥ minsup
Szekvenciális mintázat bányászat: kihívások
Adott egy sorozat: <{a b} {c d e} {f} {g h i}>
– Példák részsorozataira:
<{a} {c d} {f} {g} >, < {c d e} >, < {b} {g} >, stb.
Mennyi k-részsorozat nyerhető ki egy adott n-sorozatból?
<{a b} {c d e} {f} {g h i}> n = 9
k=4: Y _ _ Y Y _ _ _ Y
<{a} {d e} {i}>
126 4
9 : Válasz
k
n
Szekvenciális mintázat bányászat: példa
Minsup = 50%
Példák gyakori részsorozatokra:
< {1,2} > s=60%
< {2,3} > s=60%
< {2,4}> s=80%
< {3} {5}> s=80%
< {1} {2} > s=80%
< {2} {2} > s=60%
< {1} {2,3} > s=60%
< {2} {2,3} > s=60%
< {1,2} {2,3} > s=60%
O b je c t T im e s ta m p E v e n ts
A 1 1 ,2 ,4
A 2 2 ,3
A 3 5
B 1 1 ,2
B 2 2 ,3 ,4
C 1 1 , 2
C 2 2 ,3 ,4
C 3 2 ,4 ,5
D 1 2
D 2 3 , 4
D 3 4 , 5
E 1 1 , 3
E 2 2 , 4 , 5
Szekvenciális minták kinyerése
Adott n számú esemény: i 1 , i 2 , i 3 , …, i n
Jelöltek 1-részsorozatokra:
<{i
1}>, <{i
2}>, <{i
3}>, …, <{i
n}>
Jelöltek 2-részsorozatokra:
<{i
1, i
2}>, <{i
1, i
3}>, …, <{i
1} {i
1}>, <{i
1} {i
2}>, …, <{i
n-1} {i
n}>
Jelöltek 3-részsorozatokra:
<{i
1, i
2, i
3}>, <{i
1, i
2, i
4}>, …, <{i
1, i
2} {i
1}>, <{i
1, i
2} {i
2}>, …,
<{i
1} {i
1, i
2}>, <{i
1} {i
1, i
3}>, …, <{i
1} {i
1} {i
1}>, <{i
1} {i
1} {i
2}>, …
Általánosított szekvenciális mintázat (GSP)
1. lépés:
– Fésüljük át először a D sorozat adatbázist az összes 1-elemű gyakori sorozat előállítására.
2. lépés:
Ismételjük amíg nem találunk új gyakori sorozatot
– Jelölt generálás:
Vonjuk össze a (k-1)-edik lépésben talált gyakori részsorozatok párjait, hogy k tételt tartalmazó sorozat jelölteket kapjunk.
– Jelölt tisztítás:
Töröljük azokat a k-sorozat jelölteket, amelyek nem gyakori (k-1)- részsorozatot tartalmaznak.
– Támogatottság számlálás:
Fésüljük át újra a D sorozat adatbázist, hogy ezen új jelöltek támogatottságát megkapjuk.
– Jelölt eliminálás:
Elimináljuk azokat a k-sorozat jelölteket, amelyek aktuális támogatottsága
kisebb mint minsup.
Jelölt generálás
Alapeset (k=2):
– Két 1-sorozat, <{i
1}> és <{i
2}>, összevonása két 2-sorozat jelöltet eredményez: <{i
1} {i
2}> és <{i
1i
2}>
Általános eset (k>2):
– Egy w
1gyakori (k-1)-sorozatot összevonunk egy másik w
2gyakori (k-1)-sorozattal, hogy egy k-sorozat jelöltet kapjunk, ha az a
részsorozat, amelyet w
1első elemének törlésével kapunk
megegyezik azzal a sorozattal, amelyet w
2utolsó elemének a törlésével kapunk.
Az összevonás eredményéül kapott jelölt a w
1sorozat w
2utolsó eleme általi kiterjesztésével adódik.
– Ha w
2két utolsó eseménye ugyanahhoz az elemhez tartozik, akkor w
2utolsó eseménye w
1utolsó elemének része lesz,
– egyébként a w
2–beli utolsó esemény egy különálló eseményként fűzzük
w
1végére.
Jelölt generálási példák
Vonjuk össze az alábbi sorozatokat w
1=<{1} {2 3} {4}> és w
2=<{2 3} {4 5}>
Eredményül a < {1} {2 3} {4 5}> sorozatot kapjuk, mivel w
2két utolsó eseménye, 4 és 5, ugyanahhoz az elemhez tartozik.
Vonjuk össze az alábbi sorozatokat
w
1=<{1} {2 3} {4}> és w
2=<{2 3} {4} {5}>
Eredményül a < {1} {2 3} {4} {5}> sorozatot kapjuk, mivel w
2két utolsó eseménye 4 és 5, nem ugyanahhoz az elemhez tartozik.
Nem kell összevonnunk a
w
1=<{1} {2 6} {4}> és w
2=<{1} {2} {4 5}>
hogy a < {1} {2 6} {4 5}> jelöltet megkapjuk, mivel ha az utóbbi életképes jelölt, akkor megkapható w
1–nek a < {1} {2 6} {5}>
sorozattal való összevonásával.
GSP példa
< {1} {2} {3} >
< {1} {2 5} >
< {1} {5} {3} >
< {2} {3} {4} >
< {2 5} {3} >
< {3} {4} {5} >
< {5} {3 4} >
< {1} {2} {3} {4} >
< {1} {2 5} {3} >
< {1} {5} {3 4} >
< {2} {3} {4} {5} >
< {2 5} {3 4} > < {1} {2 5} {3} >
Frequent 3-sequences
Candidate Generation
Candidate
Pruning
Időbeli kényszerek (I)
{A B} {C} {D E}
<= m
s<= x
g>n
gx
g: max-rés n
g: min-rés
m
s: maximális fedés
Adatsorozat Részsorozat Tartalmazza-e?
< {2,4} {3,5,6} {4,7} {4,5} {8} > < {6} {5} > Igen
< {1} {2} {3} {4} {5}> < {1} {4} > Nem
< {1} {2,3} {3,4} {4,5}> < {2} {3} {5} > Igen
< {1,2} {3} {2,3} {3,4} {2,4} {4,5}> < {1,2} {5} > Nem
x
g= 2, n
g= 0, m
s= 4
Szekvenciális mintázatok bányászata időbeli kényszerrel
1. megközelítés:
– Bányásszunk szekvenciális mintázatot időbeli kényszer nélkül.
– Dolgozzuk fel utólagosan a feltárt mintázatokat.
2. megközelítés:
– Módosítsuk a GSP módszert úgy, hogy közvetlenül tisztítjuk azokat a jelölteket, amelyek nem tesznek eleget az időbeli kényszernek.
– Kérdés:
Érvényben marad-e még az Apriori elv?
Apriori elv szekvenciális adatokra
O b je c t T im e s ta m p E v e n ts
A 1 1 ,2 ,4
A 2 2 ,3
A 3 5
B 1 1 ,2
B 2 2 ,3 ,4
C 1 1 , 2
C 2 2 ,3 ,4
C 3 2 ,4 ,5
D 1 2
D 2 3 , 4
D 3 4 , 5
E 1 1 , 3
E 2 2 , 4 , 5
Tegyük fel:
x
g= 1 (max-rés) n
g= 0 (min-rés)
m
s= 5 (maximális fedés) minsup = 60%
<{2} {5}> támogatottság = 40%
de
<{2} {3} {5}> támogatottság = 60%
Probléma merül fel a max-rés kényszer miatt.
Nem merül fel ez a probléma ha a max-rés végtelen.
Folyamatos részsorozatok
s folyamatos részsorozata az alábbi sorozatnak
w = <e
1>< e
2>…< e
k>
ha az alábbi feltételek egyike teljesül:
1. s úgy adódik w-ből, hogy egy tételt törlünk e
1–ből vagy e
k-ből 2. s úgy adódik w -ből, hogy egy olyan tételt törlünk e
i–ből, amely
2-nél több eseményt tartalmaz
3. s folyamatos részsorozata s’-nek és s’ folyamatos részsorozata w-nek (recurzív definíció)
Példák: s = < {1} {2} >
– folyamatos részsorozata az alábbiaknak
< {1} {2 3}>, < {1 2} {2} {3}> és < {3 4} {1 2} {2 3} {4} >
– nem folyamatos részsorozata az alábbiaknak
< {1} {3} {2}> és < {2} {1} {3} {2}>
Módosított jelölt metszési lépés
A max-rés kényszer nélkül:
– A k-sorozat jelöltet eltávolítjuk ha (k-1)-részsorozatai közül legalább az egyik nem gyakori.
A max-rés kényszerrel:
– A k-sorozat jelöltet eltávolítjuk ha folyamatos (k-1)-
részsorozatai közül legalább az egyik nem gyakori.
Időbeli kényszerek (II)
{A B} {C} {D E}
<= m
s<= x
g>n
g<= ws
x
g: max-rés n
g: min-rés
ws: ablak nagyság m
s: maximális fedés
Adatsorozat Részsorozat Tartalmazás?
< {2,4} {3,5,6} {4,7} {4,6} {8} > < {3} {5} > Nem
< {1} {2} {3} {4} {5}> < {1,2} {3} > Igen
< {1,2} {2,3} {3,4} {4,5}> < {1,2} {3,4} > Igen
x
g= 2, n
g= 0, ws = 1, m
s= 5
Módosított támogatottság számlálás
Adott egy mintázat jelölt: <{a, c}>
– Az összes adatsorozat, amely tartalmazza a
<… {a c} … >,
<… {a} … {c}…> ( ahol idő({c}) – idő({a}) ≤ ws)
<…{c} … {a} …> (ahol idő({a}) – idő({c}) ≤ ws) sorozatokat hozzájárul a mintázat jelölt
támogatottsági számához.
Egy más modell
Bizonyos területeken csak egy nagyon hosszú idősorunk van.
– Példa:
hálózati forgalmi események monitorozása támadások miatt
telekommunikációs riasztási jelek monitorozása
A cél az, hogy események gyakori sorozatait találjuk meg az idősorban
– A feladat gyakori epizód bányászatként is ismert
E1 E2
E1 E2
E1 E2 E3
E4 E3 E4
E1 E2
E2 E4 E3 E5
E2 E3 E5
E1
E2 E3 E1
Mintázat: <E1> <E3>
Altalános támogatottságot számoló eljárások
p
Object's Timeline
Sequence: (p) (q) Method Support
Count
COBJ 1
1
CWIN 6
CMINWIN 4
p q
p
q q
p
q q p
2 3 4 5 6 7
CDIST_O 8
Tegyük fel:
x
g= 2 (max-rés) n
g= 0 (min-rés)
ws = 0 (ablak nagyság)
m
s= 2 (maximális fedés)
Gyakori részgráf bányászat
Terjesszük ki az asszociációs szabály bányászatot gyakori részgráfok keresésére.
Hasznos a web-bányászatban, számítógépes ké- miában, bioinformatikában, térbeli adatoknál, stb.
Databases Homepage
Research
Artificial Intelligence
Data Mining
Gráf definíciók
a
b a
c c
b
(a) Labeled Graph
p q
p
p r
s t
r
t
q p
a
a
c
b
(b) Subgraph
p s t
p
a
a
c
b
(c) Induced Subgraph
p
r
s t
r
p
Tranzakciók gráf-reprezentációja
Minden tranzakció tételek egy klikkje
Tranzakció
azonosító Tételek
1 {A,B,C,D}
2 {A,B,E}
3 {B,C}
4 {A,B,D,E}
5 {B,C,D}
A
B
C
D
E
TID = 1:
Tranzakciók gráf-reprezentációja
a
b
e
c p
q
r p
a
b
d p
r
G1 G2
q
e
c
a
p q
r b
p
G3
d r
d r
(a,b,p) (a,b,q) (a,b,r) (b,c,p) (b,c,q) (b,c,r) … (d,e,r)
G1 1 0 0 0 0 1 … 0
G2 1 0 0 0 0 0 … 0
G3 0 0 1 1 0 0 … 0
G3 … … … … … … … …
Kihívások
Egy csúcs duplikált címkéket is tartalmazhat
Támogatottság és megbízhatóság
– Hogyan definiáljuk őket?
További kényszerek fakadhatnak a mintázat szerkezetéből
– Támogatottság és megbízhatóság nem az egyetlen kényszer – Feltevés: a gyakori részgráfok összefüggőek
Apriori-szerű megközelítés:
– Használjuk a gyakori k-részgráfokat a gyakori (k+1)-részgráfok előállítására.
Mi legyen k?
Kihívások
Támogatottság:
– Számos olyan gráf van, amely egy speciális részgráfot tartalmaz.
Az apriori elv még érvényben marad
Szintenkénti (Apriori-szerű) megközelítés:
– Csúcsnövelés:
k a csúcsok száma
– Élnövelés:
k az élek száma
Csúcsnövelés
a
a
e
a p
q
r
p
a
a
a p
r r
d
G1 G2
p
0 0 0
0 0
0 0
0
1
q r p
r p
q p p M
G
0 0
0
0 0 0
0 0
2
r r r
p
r p
p p M
Ga
a
a p
q
r
e p
0 0 0 0
0 0 0
0
0 0
0 0 0
0 0
3
q
r r r
p
r p
q p
p
M
GG3 = join(G1,G2)
r d
+
Élnövelés
a
a
f
a p
q
r
p
a
a
a p
r r
f
G1 G2
p
a
a
a p
q
r p f
G3 = join(G1,G2)
+ r
Apriori-szerű algoritmus
Keressük meg a gyakori 1-részgráfokat
Ismételjük
– Jelölt generálás
Használjuk a gyakori (k-1)-részgráfokat a k-részgráf jelöltek előállítására.
– Jelölt metszés
Töröljük azokat a részgráf jelölteket, amelyeknek van nem gyakori (k-1)-részgráfja.
– Támogatottság számlálás
Számoljuk össze a támogatottságát mindegyik megmaradt jelöltnek.
– Töröljük azokat a k-részgráf jelölteket, amelyek nem gyakoriak.
A gyakorlatban ez nem könnyű. Sok más szempont is létezik.
Példa: adatállomány
a
b
e
c p
q
r p
a
b
d p
r
G1 G2
q
e
c
a
p q
r b
p
G3
d r
d r
(a,b,p) (a,b,q) (a,b,r) (b,c,p) (b,c,q) (b,c,r) … (d,e,r)
G1 1 0 0 0 0 1 … 0
G2 1 0 0 0 0 0 … 0
G3 0 0 1 1 0 0 … 0
G4 0 0 0 0 0 0 … 0
a e
q
c d
p p
p
G4
r
Példa
p
a b c d e
k=1
Frequent Subgraphs
a b
p
c d
p
c e
q
a e
r
b d
p
a b
d r
p
d c
e p
(Pruned candidate) Minimum support count = 2
k=2
Frequent Subgraphs
k=3
Candidate
Subgraphs
Jelölt generálás
Aprioriban:
– Két gyakori k-tételcsoport összevonása eredményez egy (k+1)-tételcsoport jelöltet.
Gyakori részgráf bányászatban (csúcs/él- növelés)
– Két gyakori k-részgráf összevonása eredményez egy
(k+1)-részgráf jelöltet.
A jelöltek multiplicitása (csúcsnövelés)
a
a
e
a p
q
r
p
a
a
a p
r r
d
G1 G2
p
0 0 0
0 0
0 0
0
1
q r p
r p
q p p M
G
0 0
0
0 0 0
0 0
2
r r r
p
r p
p p M
Ga
a
a p
q
r
e p
0
? 0 0
? 0 0
0
0 0
0 0 0
0 0
3
q
r r r
p
r p
q p
p
M
GG3 = join(G1,G2)
r d
?
+
A jelöltek multiplicitása (élnövelés)
1. eset: azonos csúcs címkék
a
b e
c
a
b e
c
+
a
b e
c
a e
b e
c
A jelöltek multiplicitása (élnövelés)
2. eset: A mag azonos
címkéjű csúcsokat tartalmaz
+
a
a a
a
c b
a
a a
a
c
a
a a
a
c b
b a
a
a
a
b a
a
a
a
c
Mag: Az a (k-1)-részgráf, amely közös a
gráfokban
A jelöltek multiplicitása (élnövelés)
3. eset: Mag multiplicitás
a a b
+
a
a
a a
b
a a
b
a
a a b
a a
a b
a b
a a
b
a a
Adjacencia mátrix reprezentáció
A(1) A(2) B (6)
A(4) B (5)
A(3)
B (7) B (8)
A(1) A(2) A(3) A(4) B(5) B(6) B(7) B(8)
A(1) 1 1 1 0 1 0 0 0
A(2) 1 1 0 1 0 1 0 0
A(3) 1 0 1 1 0 0 1 0
A(4) 0 1 1 1 0 0 0 1
B(5) 1 0 0 0 1 1 1 0
B(6) 0 1 0 0 1 1 0 1
B(7) 0 0 1 0 1 0 1 1
B(8) 0 0 0 1 0 1 1 1
A(2) A(1) B (6)
A(4) B (7)
A(3)
B (5) B (8)
A(1) A(2) A(3) A(4) B(5) B(6) B(7) B(8)
A(1) 1 1 0 1 0 1 0 0
A(2) 1 1 1 0 0 0 1 0
A(3) 0 1 1 1 1 0 0 0
A(4) 1 0 1 1 0 0 0 1
B(5) 0 0 1 0 1 0 1 1
B(6) 1 0 0 0 0 1 1 1
B(7) 0 1 0 0 1 1 1 0
B(8) 0 0 0 1 1 1 0 1
• Ugyanaz a gráf sokféleképpen reprezentálható
Gráf izomorfizmus
Egy gráf izomorf ha topológiailag ekvivalens egy másik gráffal.
A
A
A A
B A
B
A
B B
A
A
B B
B
B