Az összes lehetséges elemhalmaz felsorolásához egy hálóstruktúrát
alkalmazhatunk. A 6.1. ábra egy elemhalmazhálót szemléltet
Ha a nyers erő módszerét alkalmaznánk a gyakori elemhalmazok
keresésére, akkor az elemhalmazhálóban valamennyi elemhalmazjelölt támogatottság át meg kellene
állapítani. Ehhez a jelölteket össze kell vetni minden egyes tranzakció
val, ezt a műveletet a 6.2. ábra mutatja. Ha a jelölt szerepel egy
tranzakció ban, akkor a támogatottság i szintjét megnöveljük. Például a
A gyakori elemhalmaz ok előállítása esetén a számítás bonyolultságát többféleképpen is csökkenteni lehet.
Elemhalmazjelölt ek számának (
Összehasonlítások számának csökkentése: Ahelyett, hogy minden elemhalmazjelöltet összevetnénk az összes tranzakció val, az összehasonlítások számát fejlettebb adatstruktúrák alkalmazásával is csökkenthetjük, mely adatstruktúrák vagy az elemhalmazjelölt eket tárolják le, vagy az adathalmazt tömörítik össze. Ezeket a stratégiákat 6.2.3. és 6.6. szakaszokban tekintjük át.
Ez a szakasz azt mutatja be, hogy a támogatottság i mérték hogyan segít lecsökkenteni az elemhalmazjelöltek számát a gyakori elemhalmazok előállítása során. A támogatottságot a következő elv miatt tudjuk felhasználni az elemhalmazjelölt ek nyesése során:
6.1. Tétel
(apriori-elv) Ha egy elemhalmaz gyakori, akkor ezen elemhalmaz összes részhalmaza is gyakori.
Az apriori-elv mögötti ötlet szemléltetéséhez vegyük a 6.3.
ábrán látható elemhalmazhálót, s tegyük fel, hogy
6.3. ábra - Az apriori-elv szemléltetése. Ha {c, d, e} gyakori, akkor ezen elemhalmaz összes részhalmaza is gyakori.

6.4. ábra - A támogatottság alapú nyesés szemléltetése. Ha

Ezzel szemben, ha egy elemhalmaz ( például
6.2. Definíció
(Monotonitás tulajdonság) Legyen
Ez a definíció azt jelenti, hogy ha
vagyis ha
Ha egy mérték rendelkezik az antimonoton tulajdonsággal, akkor közvetlenül beépíthető az adatbányászati algoritmus okba az elemhalmazjelöltek exponenciális keresési terének hatékony nyesése érdekében. Ezt a következő szakaszban fogjuk bemutatni.
Az asszociációs szabály okat bányászó Apriori algoritmus az első
olyan algoritmus, amely a támogatottság alapú nyesési módszert
használta fel az elemhalmazjelöltek exponenciális számának a
csökkentésére. A 6.5. ábra vázlatosan ábrázolja a gyakori elemhalmazok
Apriori algoritmussal történő előállítását a 6.1. táblázatban lévő
tranzakció kra alkalmazva. Tegyük fel, hogy a támogatottsági
küszöbérték
Kezdetben minden elemet 1-elemhalmazjelöltnek tekintünk. A
támogatottság i értékek kiszámítása után a
Az apriori nyesési stratégia hatékonyságát az előállított elemhalmazjelöltek összeszámlálásával tudjuk megmutatni. Ha a nyers erő módszerével állítjuk elő az összes (legfeljebb 3 elemű) elemhalmazt mint jelölteket, akkor ez
számú jelöltet produkál. Az apriori-elvvel ez a szám lecsökkenthető
számú jelöltre, mely még ezen egyszerű példa esetén is egy 68%-os csökkenést jelent az elemhalmazjelöltek számában.
Az Apriori algoritmus gyakori elemhalmazokat előállító részének
a pszeudokódját a 6.1. algoritmus szemlélteti. Jelölje
6.1. algoritmus Az Apriori algoritmus gyakori elemhalmazokat előállító része |
1: k = 1 2: Fk = { i | i ∈ I ∧ σ({i}) ≥ N × minsup } {az összes gyakori 1-elemhalmaz megkeresése} 3: repeat 4: k = k + 1 5: Ck = Apriori-Gen(Fk−1) {elemhalmazjeloltek előállítása} 6: for minden t ∈ T tranzakcióra do 7: Ct = részhalmaz(Ck, t) {a t-hez tartozó összes jelölt azonosítása} 8: for minden c ∈ Ct elemhalmazjelöltre do 9: σ(c) = σ(c) + 1 {támogatottsági szint növelése} 10: end for 11: end for 12: Fk = { c | c ∈ Ck ∧σ(c) ≥ N ×minsup } {gyakori k-elemhalmazok kinyerése} 13: until Fk = ∅ 14: Eredmeny =
|
Az algoritmus először végigmegy az adathalmazon és
megállapítja az elemek támogatottság át. Ezen lépés végére ismert
lesz az összes gyakori 1-elemhalmaz (lásd
Az algoritmus ezután új
Apriori-Gen nevű függvény a
felelős, ezt a 6.2.3. szakaszban mutatjuk be.
A jelöltek támogatottság i értékének megállapításához az
algoritmusnak ismét végig kell mennie az adathalmazon (6--10.
lépések). A részhalmaz függvény mindazon
A támogatottság i értékek kiszámítása után az algoritmus
kizárja az összes olyan elemhalmazjelöltet, amelyeknek a
támogatottság a kisebb, mint a
Az algoritmus akkor áll le, amikor már nem tud több gyakori
elemhalmazt előállítani, azaz
Az Apriori algoritmus gyakori elemhalmazokat előállító részének
két fontos jellemzője van. Először is, az Apriori szintenkénti algoritmus, ugyanis az
elemhalmazhálót szintenként járja be, vagyis a gyakori
1-elemhalmazoktól folyamatosan halad a leghosszabb gyakori
elemhalmazokig. Másodsorban az Apriori generál-és-tesztel stratégiát használ a
gyakori elemhalmazok megtalálásához. Az új elemhalmazjelölteket minden
egyes iterációban az előző lépésben talált gyakori elemhalmazokból
állítja elő. Az algoritmus ezután kiszámolja a jelöltek
támogatottságát és ezt összeveti a
A 6.1. algoritmus 5. lépésében látott Apriori-Gen
függvény a következő két lépésben állítja elő az
elemhalmazjelölteket:
Jelöltek generálása: Ez a
művelet új
Jelöltek nyesése: Ez a
művelet néhány
A jelöltek nyesésének szemléltetéséhez vegyünk egy
Az elemhalmazjelölteket elméletileg többféle módon is elő lehet állítani. Következzék itt egy lista arról, hogy egy hatékony jelöltgeneráló módszernek milyen követelményeknek kell megfelelnie:
Lehetőleg ne állítson elő túl sok felesleges jelöltet. Egy elemhalmazjelölt felesleges, ha legalább egy részhalmaza nem gyakori. A támogatottság antimonoton jellemzője alapján egy ilyen jelölt garantáltan nem gyakori.
A jelölthalmaznak teljesnek kell lennie, vagyis a jelöltek
előállítása során egyetlen gyakori elemhalmaz sem maradhat ki. A
teljesség biztosításához az elemhalmazjelöltek halmazának magába
kell foglalnia a gyakori elemhalmaz ok halmazát, azaz
Lehetőség szerint ne állítsa elő ugyanazt a jelöltet egynél
többször. Például az
A következőkben néhány módszert mutatunk be röviden a jelöltek előállítására, beleértve azt is, amelyet az Apriori-Gen függvény használ.
A nyers erő módszere
A nyers erő módszere valamennyi
A jelöltek előállítására egy másik módszer, ha minden gyakori
6.7. ábra - k-elemhalmazjelöltek előállítása és nyesése gyakori (k − 1)-elemhalmazok és gyakori elemek párosításával. Megjegyezzük, hogy néhány jelölt felesleges a nem gyakori részhalmazok miatt.

Az eljárás teljes, mivel minden gyakori
Bár ez az eljárás lényeges előrelépés a nyers erő módszerével
szemben, még mindig nagyon sok felesleges jelölttel kell számolni. A
Az Apriori-Gen függvény ben szereplő módszer a
jelölteket gyakori (
6.8. ábra - k-elemhalmazjelöltek előállítása és nyesése gyakori (k − 1)-elemhalmazpárok egyesítésével

A 6.8. ábrán a
A támogatottsági szint kiszámítása során megállapítjuk minden
elemhalmazjelölt előfordulási gyakoriságát. Ez a művelet csak azon
jelöltekre vonatkozik, melyek túljutottak az Apriori-Gen
függvény nyesési lépésén. A támogatottsági szint kiszámítása a 6.1.
algoritmusban a 6--11. sorokban található. Az egyik megközelítés az
lehet, hogy minden tranzakció t összehasonlítunk az összes
elemhalmazjelölt tel (lásd a 6.2. ábrát), és ha egy jelölt szerepel a
tranzakció ban, akkor megnöveljük a jelölt támogatottság i szintjét.
Ez a módszer azonban nagyon számításigényes, különösen akkor, ha a
tranzakció k és az elemhalmazjelölt ek nagy számban vannak
jelen.
Egy másik megközelítés során minden egyes tranzakció esetén
felsoroljuk a tranzakció ban szereplő összes elemhalmazt, majd
megnöveljük az ezeknek megfelelő elemhalmazjelöltek támogatottsági
szintjét. Vegyünk például egy
A 6.9. ábra a
Az első elem rögzítése után a prefix struktúra 2. szintje azt
mutatja, hogy hányféleképpen lehet kiválasztani a második elemet.
Például az 1 2
A 6.9. ábrán látható prefix struktúra azt szemlélteti, hogy hogyan lehet egy tranzakció elemhalmazait szisztematikusan felsorolni. Ehhez meg kell adni az elemhalmazok elemeit egyenként, a bal szélső elemtől kezdve a jobb szélsőig. Hátra van még annak a megállapítása, hogy a felsorolt 3-elemhalmazok megegyeznek-e valamely létező elemhalmazjelölttel. Egyezés esetén a megfelelő jelölt támogatottság i értékét megnöveljük. A következő szakaszban azt mutatjuk be, hogy ezt az összeillesztési műveletet hogyan lehet hatékonyan megoldani hasítófa (hash tree) alkalmazásával.
Támogatottság i szint kiszámítása hasítófa használatával
Az Apriori algoritmusban az elemhalmazjelölteket különböző kosarakba soroljuk, majd egy hasítófában tároljuk le őket. A támogatottság i szint kiszámításakor a tranzakció kban található elemhalmazokat is a nekik megfelelő kosarakba soroljuk be. Így ahelyett, hogy egy tranzakció minden egyes elemhalmaz át összehasonlítanánk az összes elemhalmazjelölttel, elegendő csak egyetlen kosár elemhalmazjelöltjeivel összevetni az elemhalmazokat (lásd a 6.10. ábrát).
A 6.11. ábra egy hasítófa-struktúrára mutat példát. A fa belső
csomópontjai a
Vegyük a
Az Apriori algoritmus számítási bonyolultságát a következő tényezők befolyásolhatják.
Támogatottság i küszöbérték
A támogatottság i küszöbérték csökkentése során gyakran megnő a gyakori elemhalmazok száma. Az algoritmus számítási bonyolultságára ez kedvezőtlenül hat, mivel több elemhalmazjelöltet kell kezelni (lásd a 6.13. ábrát). Alacsonyabb támogatottság i küszöbérték esetén a gyakori elemhalmazok maximális mérete is növekedést mutat. Amint ez az érték nő, az algoritmusnak több alkalommal kell végigolvasnia az adathalmazt.
6.13. ábra - A támogatottsági küszöbérték hatása az elemhamazjelöltek és gyakori elemhalmazok számának alakulására

Elemek száma (dimenzió)
Az elemszám növekedésével több tárterületre van szükség az elemek támogatottság i szintjének a tárolásához. Ha az adatok méretével együtt a gyakori elemek száma is nő, akkor a számítási és I/O költségek is megnőnek, mivel az algoritmusnak több elemhalmazjelöltet kell előállítania.
Tranzakció k száma
Mivel az Apriori algoritmusnak egy adathalmazt többször is végig kell olvasnia, ezért a több tranzakció hosszabb futási időt eredményez.
Tranzakció k átlagos szélessége
Sűrű adathalmazokban a tranzakció k átlagos szélessége nagyon nagy lehet. Ez kétféleképpen befolyásolja az Apriori algoritmus bonyolultságát. Egyrészt a tranzakció k átlagos szélességének a növekedése megnöveli a gyakori elemhalmazok maximális méretét. Ennek eredményeképpen a jelöltek generálása és a jelöltek támogatottság i szintjének a megállapítása során több elemhalmazjelöltet kell megvizsgálni (lásd a 6.14. ábrát). Másodsorban, ha nő a tranzakció k szélessége, akkor a tranzakció k több elemhalmazt tartalmaznak. A támogatottság i szint kiszámításakor ez megnöveli a hasítófákban történő bejárások számát.
A következőkben az Apriori algoritmus időbonyolultságának részletes elemzése következik.
Gyakori 1-elemhalmazok előállítása
Minden tranzakció esetében meg kell növelni a tranzakció ban
szereplő elemek támogatottsági szintjét. Feltéve, hogy a tranzakció k
átlagos szélessége
Jelöltek előállítása
A
A jelöltek előállítása során az elemhalmazjelöltek tárolására
egy hasítófát is létrehozunk. Mivel a fa maximális mélysége
Támogatottság i szint kiszámítása
Minden