230 likes | 340 Views
PhD beszámoló 2002/2003 II. félév. Készítette: Iváncsy Renáta Konzulens: Dr. Vajk István. Adatbányászat – asszociációs szabályok. Adatbányászati problémák feltérképezése Asszociációs szabály generáló algoritmusok vizsgálata
E N D
PhD beszámoló2002/2003 II. félév Készítette: Iváncsy Renáta Konzulens: Dr. Vajk István
Adatbányászat – asszociációs szabályok • Adatbányászati problémák feltérképezése • Asszociációs szabály generáló algoritmusok vizsgálata • Elkészítettem egy programot, ami megvalósítja az asszociációs szabálygenerálás alap algoritmusát, az Apriori algoritmust • Tervek: • További algoritmusokkal kiegészíteni a programot, méréseket végezni
Elemhalmaz támogatottsága Az X elemhalmaz támogatottsága: azon tranzakciók számának aránya az összes tranzakciószámhoz, amelyek tartalmazzák az X-et.
Asszociációk bányászatának lépései • Az összes gyakori elemhalmaz megtalálása • A gyakori elemhalmazokból érvényes asszociációs szabályok generálása • Gyakori elemhalmaz: támogatottsága nagyobb mint a küszöbérték • Érvényes szabály: eleget tesz mind a minimális támogatottság, mind a minimális bizonyosság küszöbértékének • Számítási igény alapján a gyakori elemhalmazok meghatározása a kritikus
Algoritmusok Gyakori elemhalmazok megtalálására
Lehetséges megoldások (1) • Szintenként haladó algoritmusok • Többször olvassák végig az adatbázist • i-edik végigolvasáskor csak a az i elemű gyakori termékhalmazokat állítják elő • Annyiszor olvassák végig az adatbázist, ahány elemű a legnagyobb gyakori termékhalmaz • Az i+1-edik lépésben a már addig megtalált gyakori termékhalmazokból következtetnek a lehetséges jelöltekre
Lehetséges megoldások (2) • Kétfázisú szabálykinyerés • Adatbázis tömörítése • Az adatbázist a memóriába tömörítik, majd a memóriában végzik el a gyakori elemhalmazok meghatározását • Mintavételezés • a gyakori elemhalmazokat a mintában határozzák meg, majd leellenőrzik az adatbázisban • Particionálás • Az adatbázist részekre osztása után az egyes részeken külön-külön lehet elvégezni a bányászatot, majd a végén az egész adatbázis alapján ellenőrzés
Apriori algoritmus (1) • Szintenként haladó algoritmus • Alapja: egy gyakori elemhalmaz minden részhalmaza is gyakori, azaz ha egy elemhalmaz nem gyakori, akkor annak bármely elemmel való bővítése sem lesz gyakori • Az adatok tranzakciókban kerülnek reprezentálásra (minden egyes tranzakció egy azonosítóból és egy elemeket tartalmazó listából áll)
Apriori algoritmus (2) • Meg kell találni az összes 1 elemű gyakori elemhalmazt (L1) • Ha megvan a k-1 elemű gyakori elemhalmazunk (Lk-1), ebből kell generálni a k elemű jelölteket (Ck) • Összekapcsoljuk azon két halmazt, amik az első k-2 elemben azonosak • A jelöltekből kivesszük azokat, aminek van k-1 elemű nem gyakori részhalmaza, így megkapjuk Ck-t • Lk-t Ck-ból kapjuk a min_s alapján
Az Apriori algoritmus változatai • DHP (Direct Hashing and Pruning) • DIC (Dynamic Itemset Counting) • DCI (Direct Count & Intersect) • DCP (Direct count candidates & Prune Transactions)
FP-growth (1) • Az adatbázist egy fa struktúrába tömöríti • Nem kell jelölteket generálnia, így igen sok számítási költséget megtakarít • Használható partíciós algoritmusban • Mérések alapján mondható, hogy hosszú és rövid minták megtalálására is hatékonyan alkalmazható lehet
FP-growth (2) Az adatbázis egyszeri végigolvasásával megszámláljuk az egyes elemek előfordulását.
FP-growth (3) -- Az FP-fa Az elemeket előfordulásuk szerint csökkenő sorrendbe kell tenni, és a tranzakciókat a második olvasáskor ez alapján kell feldolgozni egy fát kell építeni
FP-growth (4) • A gyakori elemhalmazokat egy rekurzív algoritmus segítségével lehet kinyerni • Az algoritmus során (ellentétben az Apriori algoritmussal) egyszerre nem csak az azonos elemszámú halmazokat kapjuk meg
Az algoritmusok osztályozása (1) • Osztályozási szempontok lehetnek: • A megtalált gyakori halmazok fajtái • A tranzakciók reprezentációja • A tranzakciók statisztikai tulajdonságai • Az adathalmazok reprezentációja • Fa alapú – a fa bejárása (szélességi, mélységi) • Gráf alapú – maximális klikk keresése • Az adatbázis hozzáférés száma (I/O) • A memória igény • A CPU igény
A gyakori halmazok fajtái • FI (Frequent Itemset) – gyakori elemhalmazok • MFI (MAximal Frequent Itemset) – maximális gyakori elemhalmazok • Ha X elemhalmaz gyakori, és nincs olyan bővebb halmaz, ami tartalmazza X-et, és gyakori • FCI (Frequent Closed Itemset) – gyakori zárt elemhalmazok
A tranzakciók reprezentációja • Horizontális elem vektor • Horizontális elem lista (tranzakciós adatbázis) • Az egyes tranzakcióhoz listában vannak az elemek • Vertikális TID vektor • Vertikális TID lista (TID list)
Az adathalmazok reprezentációja • Fa – a különböző algoritmusok a fa ágainak metszésével próbálják hatékonyabbá tenni a keresést • Páros gráf • A páros gráf egyik csomópont halmaza a tranzakciók, a másik az elemek • Egy él van egy elem és egy tranzakció között, ha az elem benne van a tranzakcióban • A maximális gyakori elemhalmazok a maximális klikkek a páros gráfban – ez NP teljes probléma
Az algoritmusok osztályozása (2) • Az Apriori algoritmus • Az összes gyakori elemhalmazt megtalálja • Horizontális elemlistán dolgozik • Szélességi bejárást alkalmaz • Szintenként halad • Hatékony rövid gyakori elemhalmazokat tartalmazó adatbázisok esetén • FP-growth • Az összes gyakori elemhalmazt megtalálja jelölt generálása nélkül • TID listán dolgozik • Az adatbázist egy fába tömöríti – kétszer kell az adatbázishoz hozzáférnie • Hosszú mintákra is alkalmas
Összegzés • Kezelhetőség érdekében csökkenteni kell: • az adatbázis hozzáférések számát • az adatok reprezentációja miatt elfoglalt memóriát • ritka elemhalmazok által elfoglalt memóriát (a jelöltek számát) • A számítási igényt