• Nem Talált Eredményt

Az Eclat algoritmus

In document Magyar nyelv˝ u irodalom (Pldal 84-87)

4. Gyakori elemhalmazok 61

4.3. Az Eclat algoritmus

Az Eclat az ¨ures mint´ab´ol indulva egy rekurz´ıv, m´elys´egi jelleg˝u bej´ar´ast val´os´ıt meg. A rekurzi´o m´elys´ege legfeljebb eggyel t¨obb, mint a legnagyobb gyakori elemhalmaz m´erete. Az Apriori-val szemben mindig egyetlen jel¨oltet ´all´ıt el˝o, majd ennek azonnal meghat´arozza a t´amogatotts´ag´at. Az (`+ 1)-elem˝u,P prefix˝u jel¨olteket, ahol |P|=`−1 az `-elem˝u, P prefix˝u gyakori elemhalmazokb´ol ´all´ıtja el˝o egyszer˝u p´aronk´enti uni´ok´epz´essel.

Az algoritmus k¨ozponti fogalma az ´un. TID-halmaz. Egy elemhalmaz TID-halmaz´anak (Transaction IDentifier) elemei azon bemeneti sorozatok azonos´ıt´oi (sorsz´amai), amelyek tar-talmazz´ak az adott elemhalmazt. M´as sz´oval egy TID-halmaz a vertik´alis adatb´azis egy meg-felel˝o sora. P´eld´aul hAD, AC, ABCD, B, AD, ABD, Dibemenet eset´en az {A, C} elemhalmaz TID-halmaza{1,2}, amennyiben egy tranzakci´o azonos´ıt´oja megegyezik a bemeneti sorozatban elfoglalt hely´evel, ´es a helyek sz´amoz´as´at null´at´ol kezdj¨uk.

A TID-halmaz k´et fontos tulajdons´aggal b´ır :

I. Az I elemhalmaz TID-halmaz´anak m´erete megadja az I t´amogatotts´ag´at.

II. Egy jel¨olt TID-halmaz´at megkaphatjuk a gener´atorainak TID-halmazaib´ol egy egyszer˝u metszetk´epz´essel.

Az Eclat pszeudok´odja a 78 oldalol tal´alhat´o.

El˝osz¨or meghat´arozzuk a gyakori elemeket, majd fel´ep´ıtj¨uk a gyakori elemek TID-halmazait.

A k´es˝obbiekben nem haszn´aljuk a bemenetet, csak a TID-halmazokat. Az algoritmus l´enyege a Eclat-seg´ed rekurzi´os elj´ar´as. Jel¨olj¨uk a P prefix˝u, P-n´el eggyel nagyobb m´eret˝u gyakori elemhalmazokb´ol alkotott halmazcsal´adot GYP-vel. Nyilv´anval´o, hogy GY=GY1.

Az Eclat jel¨olt-el˝o´all´ıt´asa megegyezik az Apriori jel¨olt-el˝o´all´ıt´as´aval, azzal a k¨ul¨onbs´eggel, hogy nem ellen˝orizz¨uk az uni´ok´epz´essel kapott halmaznak minden r´eszhalmaz´ara, hogy gyakori-e (a m´elys´egi bej´ar´as miatt ez az inform´aci´o nem is ´all rendelkez´es¨unkre). L´athat´o, hogy az Eclat abban is k¨ul¨onb¨ozik az Apriori-t´ol, hogy egy jel¨olt el˝o´all´ıt´asa ut´an azonnal

Algorithm 3Eclat

Require: T : tranzakci´ok sorozata, min supp: t´amogatotts´agi k¨usz¨ob, for all t∈ T do

for all i∈t do J1 ←J1∪{i}

i.sz´aml´al´o ←i.sz´aml´al´o + 1 end for

end for

for all j ∈J1 do

if j.sz´aml´al´o ≥min supp then GY1←GY1∪{j}

end if end for

for i←1 to |T | do for all j∈ti∩GY1 do

j.T ID←j.T ID∪{i} end for

end for

returnGY1∪ Eclat-seg´ed(∅, GY1, min supp) Algorithm 4Eclat-seg´ed

Require: P: prefix elemhalmaz.

GYP: P prefix˝u, P-n´el eggyel nagyobb m´eret˝u gyakori elemhalmazokb´ol alkotott halmaz-csal´ad,

min supp: t´amogatotts´agi k¨usz¨ob, for all gy∈GYP do

for all gy0∈GYP, gy≺gy0 do j←gy∪gy0

j.T ID←gy.T ID∩gy0.T ID if |j.T ID| ≥min supp then

GYgy←GYgy∪{j} end if

end for

if |GYgy| ≥2 then

GY ←GY ∪GYgy∪ Eclat-seg´ed(gy, GYgy, min supp) else

GY ←GY ∪GYgy end if

end for returnGY

meghat´arozza a t´amogatotts´ag´at, miel˝ott ´ujabb jel¨oltet ´all´ıtana el˝o. N´ezz¨unk egy p´eld´at a ke-res´esi t´er bej´ar´as´ara.

4.14. p´elda. Legyen T =hACDE, ACG, AF GM, DMi ´es min supp= 2. Els˝o l´ep´esben meg-hat´arozzuk a gyakori elemeket :A, C, D, G, M, ami nem m´as, mintGY. Ezut´an el˝o´all´ıtjuk ´es azonnal meg is hat´arozzuk az (A, C), (A, D), (A, G), (A, M) p´arok uni´oj´at. Ezek k¨oz¨ul csak az AC, AG halmazok gyakoriak. A k¨ovetkez˝o rekurzi´os l´ep´esben ennek a k´et halmaznak vessz¨uk az uni´oj´at, ´all´ıtjuk el˝o a TID-halmaz´at, amely alapj´an kider¨ul, hogy az ACG ritka, ´es a rekurzi´o ezen ´aga v´eget ´er. Ezut´an a C elemnek vessz¨uk az uni´oj´at a sorban ut´ana k¨ovetkez˝o elemekkel egyes´evel ´es ´ıgy tov´abb.

L´atnunk kell, hogy az Eclat legal´abb annyi jel¨oltet ´all´ıt el˝o, mint azApriori. A m´elys´egi bej´ar´as miatt ugyanis egy jel¨olt el˝o´all´ıt´as´an´al nem ´all rendelkez´es¨unkre az ¨osszes r´eszhalmaz. Az el˝oz˝o p´elda eset´eben p´eld´aul az {A,C,G} t´amogatotts´ag´at hamarabb vizsg´alja, mint a {C,G} halmaz´et, holott ez ut´obbi ak´ar ritka is lehet. Ebben a tekintetben teh´at az Eclat rosszabb azApriori-n´al, ugyanis t¨obb lesz a ritka jel¨olt.

Az Eclat igazi ereje a jel¨oltek t´amogatotts´ag´anak meghat´aroz´as´aban van. A jel¨oltek TID-halmazainak el˝o´all´ıt´asa egy rendk´ıv¨ul egyszer˝u ´es nagyon gyors m˝uvelet lesz. Emellett ahogy haladunk egyre m´elyebbre a m´elys´egi bej´ar´as sor´an, ´ugy cs¨okken a TID-halmazok m´erete,

´es ezzel a t´amogatotts´ag meghat´aroz´as´anak ideje is. Ezzel szemben az Apriori-n´al ahogy haladunk az egyre nagyobb m´eret˝u jel¨oltek fel´e, ´ugy n˝o a sz´ofa m´elys´ege, ´es lesz egyre lassabb minden egyes jel¨olt t´amogatotts´ag´anak meghat´aroz´asa.

A keres´esi t´er bej´ar´asa f¨ugg a prefix defin´ıci´oj´at´ol, amit az elemeken defini´alt rendez´es hat´aroz meg. Melyek lesznek azok a jel¨oltek, amelyek az Apriori-ban nem lenn´enek jel¨oltek (teh´at biztosan ritk´ak), illetve v´arhat´oan melyik az a rendez´es, amely a legkevesebb ilyen tulaj-dons´ag´u halmazt adja ? Ha egy elemhalmaz jel¨olt azEclatalgoritmusban, de azApriori-ban nem, akkor van olyan r´eszhalmaza, amely ritka. Amennyiben felt´etelezz¨uk, hogy az elemek f¨uggetlenek, akkor azon r´eszhalmaz el˝ofordul´as´anak lesz legkisebb a val´osz´ın˝us´ege (´es ezzel egy¨utt az es´elye annak, hogy ritka), amely a leggyakoribb elemet nem tartalmazza. A jel¨olt pre-fixe gener´ator, teh´at gyakori, ´ıgy akkor lesz a legnagyobb es´elye annak, hogy minden r´eszhalmaz gyakori, ha a prefix a leggyakoribb elemet nem tartalmazza. Az Eclat algoritmusn´al a legke-vesebb ritka jel¨oltet ´es ´ıgy a legjobb fut´asi id˝ot teh´at a gyakoris´ag szerint n¨ovekv˝o rendez´est˝ol v´arhatjuk.

4.15. p´elda. Ennek a gondolatmenetnek az illusztr´al´as´ara n´ezz¨uk a k¨ovetkez˝o p´eld´at. Legyenek gyakori halmazok a k¨ovetkez˝ok : A, B, C, D, AB, AC, BC, AD, ABC, tov´abb´a supp(D)≺

≺ supp(C) ≺ supp(B) ≺ supp(A). Amennyiben az Eclat algoritmus a gyakoris´ag szerint cs¨okken˝o sorrendet haszn´alja, akkor az el˝o´all´ıt´as sorrendj´eben a k¨ovetkez˝o halmazok lesznek jel¨oltek : A, B, C, D, AB, AC, AD, ABC, ABD, ACD, BC, BD, CD. Ugyanez gyakoris´ag szerint n¨ovekv˝o sorrendn´elD, C, B, A, DC,DB, DA, CB,CA, CBA, BA. Az ut´obbi esetben teh´at n´egy ritka jel¨olt helyett (ABD,ACD,BD, CD) csak kett˝o lesz (CD,BD). Megjegyezz¨uk, hogy ez a k´et elemhalmaz az Apriori eset´eben is jel¨olt lesz. A gyakoris´ag szerint cs¨okken˝o eset-ben egyszer ´all´ıtunk el˝o olyan h´aromelem˝u jel¨oltet, amelynek van olyan k´etelem˝u r´eszhalmaza, amelyet nem vizsg´altunk. Ez a jel¨olt a CBA ´es a nem megvizsg´alt r´eszhalmaz a BA. Mivel a r´eszhalmaz ´eppen a leggyakoribb elemeket t´arolja, ez´ert van nagy es´elye annak, hogy gyakori (f˝oleg ha hozz´avessz¨uk, hogy a jel¨olt k´et gener´atora,CB ´es CA is gyakori).

Jav´ıthatunk az algoritmus hat´ekonys´ag´an, ha nem a jel¨oltek TID-list´ait t´aroljuk, hanem a jel¨olt ´es prefixe TID-list´aj´anak k¨ul¨onbs´eg´et. A prefix t´amogatotts´ag´ab´ol ´es a TID list´ak

k¨ul¨onbs´eg´eb˝ol a t´amogatotts´ag egy´ertelm˝uen megadhat´o. A k¨ul¨onbs´egi list´ak ak´ar nagyob-bak is lehetnek az eredeti TID-list´akn´al (p´eld´aul, ha a I t´amogatotts´aga kicsi, de a prefix´enek t´amogatotts´aga nagy), ´ıgy a legjobb megold´ast a k´et technika ¨otv¨oz´ese adhatja (p´eld´aul 4-n´el kisebb elemsz´amn´al TID lista, ut´ana k¨ul¨onbs´egi list´ak) [188]. A k¨ul¨onbs´egi list´at haszn´al´o algo-ritmusok nagy f¨ol´ennyel verik a t¨obbi algoritmust, amennyiben a bemenet s˝ur˝u, ´es nagy m´eret˝u gyakori mint´ak is vannak.

4.3.1. kdci

4.3.2. lcm

In document Magyar nyelv˝ u irodalom (Pldal 84-87)