Ebben a szakaszban az asszociációs elemzés olyan módszereivel foglalkozunk, melyek az elemhalmazokon és sorozatokon túlmutató, bonyolultabb konstrukciókra alkalmazhatóak. Ilyenek például a kémiai vegyületek, a háromdimenziós fehérjeszerkezetek, a hálózati topológiák és a faszerkezetű XML dokumentumok. Ezeket a konstrukciókat (a továbbiakban: egyedeket) gráfreprezentációval modellezhetjük, ahogy az a 7.7. táblázatban is látható.
7.7. táblázat - Különböző alkalmazási területek egyedeinek gráfreprezentációja
Alkalmazás | Gráfok | Csúcsok | Élek |
Web bányászat | Webböngészési | Weboldalak | Oldalak közötti |
mintázatok |
| hiperlinkek | |
Számítógépes | Kémiai vegyületek | Atomok vagy | Atomok vagy ionok |
kémia | szerkezete | ionok | közötti kötések |
Hálózati | Számítógéphálózatok | Számítógépek és | Gépek közötti |
számítások |
| szerverek | összeköttetések |
Szemantikus | XML dokumentumok | XML elemek | Elemek szülő-gyermek |
web |
|
| kapcsolatai |
Bioinformatika | Fehérjeszerkezetek | Aminosavak | Kapcsoló gyökök |
Az ilyen típusú adatok esetén hasznos egy olyan adatbányászati tevékenység végrehajtása, amely gráfok halmazából nyer ki gyakori részstruktúrákat. Ezt a feladatot gyakori részgráfok bányászatának nevezik. A gyakori részgráfok bányászatának egy lehetséges alkalmazási területe a számítógépes kémia. Minden évben új kémiai vegyületeket terveznek gyógyszerekhez, rovarirtószerekhez, műtrágyákhoz, stb. Bár közismert, hogy a kémiai vegyületek felépítése nagyban befolyásolja kémiai tulajdonságaikat, nehéz a közöttük lévő pontos kapcsolatot kimutatni. Ezt a feladatot segíthet megoldani a gyakori részgráfok bányászata azon részstruktúrák azonosításával, amelyeket általában ismert vegyületek bizonyos tulajdonságaihoz társítanak. Ilyen információk segítségével a tudósok bizonyos, kívánt tulajdonságokkal rendelkező új vegyületeket fejleszthetnek ki.
Ebben a szakaszban egy módszertant mutatunk be, amellyel asszociációs elemzést alkalmazhatunk gráf-alapú adatokra. Először áttekintünk néhány alapvető gráfelméleti fogalmat és definíciót. Ezután bevezetjük a gyakori részgráfok bányászatának feladatát, majd leírjuk, hogyan lehet a hagyományos Apriori algoritmust kiterjeszteni úgy, hogy alkalmas legyen ilyen mintázatok feltárására.
A gráf egy olyan adatszerkezet, amellyel egyedek közötti
kapcsolatokat ábrázolhatunk. Matematikai értelemben egy gráf csúcsok
egy
7.4. Definíció
(Részgráf) Egy
A 7.9. ábrán egy olyan gráf látható, amelynek 6 csúcsa és 11 éle van, továbbá a lehetséges részgráfjai közül egy. A 7.9. (b) ábrán látható részgráfba az eredeti gráf 6 csúcsa közül csak 4, és 11 éle közül is csak 4 tartozik bele.
7.5. Definíció
(Támogatottság) Ha adott gráfok egy
7.2. Példa.
Tekintsük a 7.10. ábrán látható
Ebben a szakaszban a gyakori részgráf bányászat problémájának egy formális definícióját mutatjuk be, és ezen feladat összetettségét érzékeltetjük .
7.6. Definíció
(Gyakori részgráfok bányászata) Ha adott gráfok egy
Egy gráf összefüggő, ha a gráf bármely két csúcsa között
létezik út, ahol út alatt csúcsok egy olyan
Egy gráf irányítatlan, ha csak irányítatlan éleket
tartalmaz. Egy
A más típusú részgráfok (irányított vagy nem összefüggő) kezeléséhez szükséges módszerek kidolgozásának feladatát meghagyjuk az Olvasónak (lásd a 15. feladatot a 497. oldalon).
A gyakori részgráfok bányászata nagy számításigényű feladat,
mert a keresési tér exponenciális. Hogy a feladat összetettségét
érzékeltessük, tekintsünk egy
ahol
7.8. táblázat - Elemhalmazok és részgráfok számának összehasonlítása
különböző
Egyedek száma (
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
Elemhalmazok száma | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 |
Részgráfok száma | 2 | 5 | 18 | 113 | 1 450 | 40 069 | 2 350 602 | 28 619 2513 |
A részgráf jelöltek száma valójában sokkal kisebb, mert a 7.8. táblázatban megadott értékek tartalmazzák a nem összefüggő részgráfokat is. A nem összefüggő részgráfokat általában figyelmen kívül hagyjuk, mert kevésbé érdekesek, mint az összefüggő részgráfok.
Nyers erőn alapuló megközelítéssel ezt úgy tehetjük meg, hogy
jelöltként generáljuk az összes összefüggő részgráfot, és kiszámítjuk
azok támogatottságát. Tekintsük például a 7.11. (a) ábrán látható
gráfokat. Feltéve, hogy a csúcsok címkéit az
Egy elem legfeljebb egyszer jelenhet meg egy elemhalmazban, míg egy csúcscímke többször is megjelenhet egy gráfban.
Ugyanahhoz a csúcscímke párhoz több élcímke is választható.
Mivel a részgráf jelöltek száma igen nagy, egy nyers erőn alapuló algoritmus akár közepes méretű gráfon alkalmazva is összeomolhat.
Ebben a szakaszban azt vizsgáljuk, hogy hogyan fejleszthetünk ki egy Apriori-szerű algoritmust, amellyel gyakori részgráfokat tárhatunk fel.
Az adatok transzformálása
Egy lehetséges megközelítés minden gráf egy tranzakciószerű
formátumba alakítása, hogy alkalmazhatóak legyenek az olyan meglévő
algoritmusok, mint például az Apriori. A 7.12. ábra azt szemlélteti,
hogy hogyan alakíthatjuk át gráfok egy halmazát a vele ekvivalens
bevásárlókosár reprezentációba. Ebben az
A gyakori részgráf bányászati algoritmus általános felépítése
A következő lépésekből áll egy gyakori részgráfok bányászatára szolgáló Apriori-szerű algoritmus:
Jelöltgenerálás, amely
során gyakori
A jelöltek nyesése, amely
során elvetjük az összes olyan
A támogatottságok
kiszámítása, amely során minden jelöltre megszámoljuk
az olyan
A jelöltek eltávolítása,
amely során elvetjük az összes olyan részgráf jelölet, melyek
támogatottsága nem éri el
A szakasz további részében ezen lépések jellegzetes részleteit fejtjük ki.
A jelöltek generálása során két gyakori
Jelöltek többszöri generálásának elkerülése érdekében
megadhatjuk továbbá azt a feltételt is az egyesítéshez, hogy a két
Jelöltgenerálás csúcsnöveléssel
A csúcsnövelés az a folyamat, amely során úgy generálunk egy új
jelöltet, hogy egy új csúcsot adunk hozzá egy meglévő gyakori
részgráfhoz. A megközelítés leírása előtt tekintsük először a gráfok
szomszédsági mátrix reprezentációját. A mátrix egy
A következőekben a csúcsnöveléses jelöltgeneráló eljárást mutatjuk be.
Csúcsnöveléses részgráf egyesítő eljárás |
Egy
|
Az így kapott gráfban egy vagy két éllel van több, mint az
eredeti gráfban. A 7.13. ábrán
Jelöltgenerálás élnöveléssel
Élnövelés alkalmazásakor a jelöltek generálása során egy új élt
szúrunk be egy meglévő gyakori részgráfba. A csúcsnöveléssel
ellentétben az eredményül kapott részgráfban nem feltétlenül nagyobb a
csúcsok száma az eredeti gráfhoz képest. A 7.14. ábrán két lehetséges
részgráf jelölt látható, amelyeket
A következőképpen foglalhatjuk össze az élnöveléses részgráf jelölt generáló eljárást.
Élnöveléses részgráf egyesítő eljárás |
Egy
|
Az egyesítendő gráfok számos topológiailag ekvivalens csúcsot
tartalmazhatnak. A topológiailag ekvivalens csúcsok fogalmának
szemléltetéséhez tekintsük a 7.15. ábrán látható gráfokat. A
A
A topológiailag ekvivalens csúcsok fogalmán keresztül könnyebben
megérthető, hogy miért generálható több részgráf jelölt az élnövelés
során. Tekintsük a 7.16. ábrán látható
A következő hozzávetőleges szabályok segítségével határozhatjuk meg a jelöltgenerálás során kapott részgráf jelölteket:
Ha
Ha
Ha
Ha
Több részgráf generálható akkor is, ha egynél több mag
társítható a két
Miután generáltuk a
A
A gráfizomorfizmus kezelése
A gráfizomorfizmus kezelésének egyik standard módszere, hogy mindkét gráfot egy egyedi sztring reprezentációra képezünk le, amelyet kódnak vagy kanonikus címkének nevezünk. A kanonikus címkék rendelkeznek azzal a tulajdonsággal, hogy ha két gráf izomorf, akkor kódjaik is megegyeznek. Ez a tulajdonság lehetővé teszi, hogy a kanonikus címkéik összehasonlításával ellenőrizzük gráfok izomorfizmusát.
Az első lépés egy gráf kanonikus címkéjének megszerkesztéséhez a
gráf szomszédsági mátrix reprezentációjának előállítása. A 7.20. ábrán
egy ilyen mátrixra láthatunk példát, amely a megadott gráfhoz
tartozik. Elméletben egy gráfnak több szomszédsági mátrix
reprezentációja is lehet, mert a csúcsokat a szomszédsági mátrixban
többféleképpen is sorba rendezhetjük. A 7.20. ábrán látható példában
az első sor és oszlop az
Matematikai értelemben minden permutáció a kezdeti szomszédsági mátrix és egy megfelelő permutációs mátrix szorzatához tartozik, mint ahogy a következő példa is mutatja.
7.3. Példa.
Tekintsük a következő mátrixot:
A következő permutációs mátrixot használhatjuk
ahol
Figyeljük meg, hogy ha jobbról szorozzuk
A második lépés a sztring reprezentáció meghatározása minden egyes szomszédsági mátrixhoz. Mivel a szomszédsági mátrix szimmetrikus, elég, ha a mátrix felső háromszög részére alapozva készítjük el a sztring reprezentációt. A 7.21. ábrán látható példában a kódot úgy kapjuk meg, hogy oszloponként összefűzzük a felső háromszögmátrix elemeit. Az utolsó lépésben összehasonlítjuk a gráf összes sztring reprezentációját, és kiválasztjuk közülük azt, amelyiknek a legkisebb (vagy a legnagyobb) a lexikografikus értéke.
Az előbb tárgyalt megközelítés költségesnek tűnhet, mivel a
kanonikus címke megtalálásához meg kell vizsgálnunk a gráf összes
lehetséges szomszédsági mátrixát, és mindnek ki kell számítanunk a
sztring reprezentációját. Konkrétan,
A támogatottság kiszámítása is költséges művelet lehet, mert meg
kell határoznunk minden részgráf jelöltet, amelyet a