• Nem Talált Eredményt

Hierarchikus elj´ar´asok

In document Magyar nyelv˝ u irodalom (Pldal 184-188)

7. Klaszterez´ es 164

7.7. Hierarchikus elj´ar´asok

A hierarchikus elj´ar´asok onnan kapt´ak a nev¨uket, hogy az elemeket, klasztereket, alklaszte-reket hierarchikus adatszerkezetbe rendezik el. K´et fajta hierarchikus elj´ar´ast k¨ul¨onb¨oztet¨unk meg : a lentr˝ol ´ep´ıtkez˝ot, m´as n´even egyes´ıt˝ot ´es a fentr˝ol ´ep´ıtkez˝ot, avagy azoszt´ot. A lentr˝ol

´ep´ıtkez˝o elj´ar´asokn´al kezdetben minden elem k¨ul¨on klaszter, majd a nagyon k¨ozeli klasztereket egyes´ıti, amennyiben azok teljes´ıtenek bizonyos felt´etelt. A fentr˝ol ´ep´ıtkez˝ok ford´ıtva m˝uk¨odnek:

kezdetben egyetlen klaszter l´etezik, amit kisebb alklaszterekre osztunk, majd ezeket finom´ıtjuk tov´abb.

A hierarchikus algoritmusok k´enyes pontja az egyes´ıtend˝o vagy osztand´o klaszterek kiv´alaszt´asa. Miut´an egy egyes´ıt´es (oszt´as) megt¨ort´enik, az ¨osszes tov´abbi m˝uveletet az ´uj klaszteren v´egezz¨uk. Ezek a m˝uveletek teh´at nem megford´ıthat´o folyamatok, ´ıgy rossz v´alaszt´as rossz min˝os´eg˝u klaszterez´eshez vezet.

7.7.1. Single-, Complete-, Average Linkage Elj´ ar´ asok

A legegyszer˝ubb egyes´ıt˝o, hierarchikus elj´ar´as az al´abbi.

I. Kezdetben minden pont k¨ul¨on klaszterhez tartozik.

II. Keress¨uk meg, majd egyes´ıts¨uk a legk¨ozelebbi klasztereket.

III. Ha a klaszterek sz´ama lecs¨okkent k-ra, akkor ´alljunk meg, ellenkez˝o esetben ugorjunk a 2. l´ep´esre.

Ez az egyszer˝u elj´ar´as a t´avols´ag m´atrixszal dolgozik, felt´etelezi, hogy az elf´er a mem´ori´aban. A t´avols´ag m´atrix egy fels˝o h´aromsz¨og-m´atrix, amelynek i-edik sor´anakj-edik eleme t´arolja az i

´esj elemek t´avols´ag´at. C´elszer˝u kieg´esz´ıteni minden sort k´et extra inform´aci´oval: a legk¨ozelebbi klaszter sorsz´am´aval ´es annak t´avols´ag´aval.

Az elj´ar´as t´ar- ´es id˝oig´enye (az ¨osszehasonl´ıt´asok sz´ama) O(n2). A mai t´arkapacit´asok mel-lett (1-2 Gbyte mem´ori´aval rendelkez˝o g´ep teljesen h´etk¨oznapinak sz´am´ıt) ez azt jelenti, hogy az elemek sz´ama 30-40 ezern´el nem lehet t¨obb.

Amennyiben k´et klaszter t´avols´ag´at a legk¨ozelebbi pontjaik t´avols´ag´aval defini´aljuk, akkor az elj´ar´astsingle linkage elj´ar´asnak nevezz¨uk. A single linkage rendk´ıv¨ul alkalmas j´ol elk¨ul¨on¨ul˝o, tetsz˝oleges alak´u klaszterek felfedez´es´ere. Mivel a minim´alis t´avols´agon alapszik, ez´ert ha a klaszterek t´ul k¨ozel ker¨ulnek egym´ashoz, akkor hajlamos a single linkage ¨osszek¨otni ˝oket, ´es esetleg a klaszteren bel¨ul egy v´ag´ast k´epezni.

Tov´abbi hib´aja, hogy ´erz´ekeny az outlierekre. ´Altal´aban az outlierek t´avol esnek a t¨obbi pontt´ol, ´ıgy ezeket a pontokat nem fogja egyes´ıteni. P´eld´aul k´et j´ol elszepar´al´od´o, sok pontot tartalmaz´o klasztert ´es egy nagyon t´avoli pontot ´ugy oszt k´et r´eszre, hogy az egyik r´eszben lesz a t´avoles˝o pont, a m´asikban pedig az ¨osszes t¨obbi. Ha tudjuk, hogy olyan adathalmazt kell klaszterezn¨unk, ahol a (tetsz˝oleges alak´u) csoportok j´ol elk¨ul¨on¨ulnek egym´ast´ol, tov´abb´a nincsenek outlierek, akkor a single elj´ar´as j´o munk´at v´egez.

Ha az elj´ar´ast gr´afelm´eleti szemsz¨ogb˝ol n´ezz¨uk (teljes gr´afban a pontoknak az elemek, az

´eleken l´ev˝o s´ulyoknak pedig a t´avols´agok felelnek meg), akkor a single-linkage elj´ar´as egy mi-nim´alis fesz´ıt˝of´at fog tal´alni, amennyiben a klaszterek sz´am´anak egyet adunk meg ´ert´ek¨ul. Ha k darab csoportba akarjuk sorolni a pontokat, akkor ezt a minim´alis fesz´ıt˝ofa k−1 legnagyobb

´el´enek elhagy´as´aval nyerhetj¨uk. Azon elemek lesznek egy klaszterben, amelyek egy komponens-be ker¨ultek. R´aj¨ohet¨unk arra is, hogy a single-linkage elj´ar´as nem m´as, mint Kruskal algoritmusa m´as k¨ont¨osben.

Ha k´et klaszter t´avols´ag´anak meg´allap´ıt´as´ahoz a minim´alis t´avols´ag helyett a maxim´alis t´avols´agot haszn´aljuk, akkor complet linkage elj´ar´asr´ol besz´el¨unk, ha pedig az ´atlagos ha-sonl´os´agot, vagy az egyes´ıtett klaszter ´atm´er˝oj´et, akkor average linkage elj´ar´asr´ol.

7.7.2. Ward m´ odszere

Ward m´odszere a particion´al´o elj´ar´asokhoz hasonl´oan a legkisebb n´egyzetes hib´at pr´ob´alja minimaliz´alni (teh´at csak vektort´erben megadott pontokn´al alkalmazhat´o). Az egyszer˝u hie-rarchikus elj´ar´ast´ol csak az egyes´ıtend˝o klaszterek kiv´alaszt´as´anak m´odj´aban k¨ul¨onb¨ozik. Azt a k´et klasztert egyes´ıti, amelyek a legkisebb n´egyzetes hiban¨oveked´est okozz´ak (nyilv´anval´oan kezdetben – amikor minden pont k¨ul¨on klaszter – a n´egyzetes hiba¨osszeg 0).

A m´odszer rendelkezik a n´egyzetes hib´at minimaliz´al´o elj´ar´asok minden hib´aj´aval. Emellett nem sk´al´azhat´o, hiszen a t´avols´agm´atrixszal dolgozik, ´es v´eg¨ul nem garant´alt, hogy megtal´alja a glob´alis minimumot.

7.7.3. A BIRCH algoritmus

Ezt az algoritmust nagy adathalmazok klaszterez´es´ere tal´alt´ak ki. Csak vektort´erben adott elemeket tud klaszterezni. Egy klasztert aCF=(N, ~LS, SS) h´armas (Cluster Feature) jellemez, ahol N a klaszterben tal´alhat´o elemek sz´ama, LS~ =PN

i=1~xi ´es SS=PN

i=1|~xi|. Egy klaszter CF-je a klaszter statisztikai jellemz˝oit t´arolja : a nulladik, els˝o ´es m´asodik momentumokat. Az algoritmus sor´an a klaszterek CF-´ert´ekeit t´aroljuk, a benne l´ev˝o elemeket nem. Egy klaszter CF-j´eb˝ol ki tudjuk sz´amolni a klaszter ´atm´er˝oj´et vagy ak´ar k´et klaszter ´atlagos t´avols´ag´at.

A CF-ekb˝ol az algoritmus egy ´un. CF-f´at ´ep´ıt fel. A CF-fa egy gy¨okeres, (lefel´e) ir´any´ıtott fa.

A fa leveleiben CF-´ert´ekek vannak, egy bels˝o pont pedig a pontb´ol indul´o alf´ahoz tartoz´o klasz-terek egyes´ıt´es´eb˝ol kapott CF-´ert´eket t´arolja. A f´anak k´et param´etere van. Az els˝o hat´arozza meg a bels˝o pontb´ol indul´o ´agak maxim´alis sz´am´at (´agsz´am korl´at). A m´asodik param´eter adja meg, hogy mekkora lehet maxim´alisan a lev´elhez tartoz´o klaszterek ´atm´er˝oje. Ennek a param´eternek nagy hat´asa van a fa m´eret´ere: min´el kisebb a maxim´alis ´atm´er˝o, ann´al t¨obb kis klasztert kell l´etrehozni, teh´at ann´al nagyobb lesz a fa.

A BIRCH algoritmus k´et f´azisra oszlik. Az els˝oben az elemek egyszeri v´egigolvas´asa sor´an fel´ep´ıtj¨uk a CF-f´at. Ez m´ar eleve egyfajta klaszterez´est eredm´enyez. A m´asodik f´azisban minden

elemet besorolunk a hozz´a legk¨ozelebbi klaszterbe, majd esetleg ebb˝ol kiindulva lefuttatunk egy particion´al´o algoritmust (p´eld´aul a k-k¨ozepet).

Az els˝o f´azis sor´an kapott CF-fa – az ´agsz´am korl´at miatt – nem val´osz´ın˝u, hogy meg fog felelni a term´eszetes klaszterez´esnek. Lehet, hogy bizonyos pontok, amelyeknek egy klaszterben kellene lenni¨uk, sz´et lesznek v´alasztva, ´es a ford´ıtottja is el˝ofordulhat. S˝ot, az is megt¨ort´enhet, hogy ugyanazok az elemek a fa ´ep´ıt´es´enek k¨ul¨onb¨oz˝o f´azisaiban k¨ul¨onb¨oz˝o levelekbe fognak ker¨ulni!

A cikk szerz˝oi javaslatot adnak az outlierek kisz˝ur´es´ere: ha a CF-f´aban valamely lev´elben tal´alhat´o pontok sz´ama

”j´oval kevesebb”, mint a levelekben tal´alhat´o pontok ´atlagos sz´ama, akkor t¨or¨olj¨uk a levelet, mert val´osz´ın˝uleg outliereket tartalmaz. A felhaszn´al´onak kell megadni az elemsz´amra vonatkoz´o k¨usz¨obsz´amot, ami alatt t¨or¨olj¨uk a leveleket. Vegy¨uk ´eszre, hogy ez a megold´as er˝os heurisztika. Sz´amtalan p´eld´at lehetne mutatni, amikor fontos pontokat is t¨or¨ol, mik¨ozben val´odi outliereket a f´aban hagy.

A BIRCH algoritmus teh´at t´enyleg meg tud b´ırkozni igaz´an nagy m´eret˝u adathalmazok-kal, azonban rendelkezik szinte az ¨osszes rossz klaszterez´esi tulajdons´aggal. Mivel a m´asodik szakaszban egyfajta k-k¨oz´ep algoritmust futtatunk, ez´ert a BIRCH-re is igazak a k-k¨oz´epr˝ol mondottak. De ezen k´ıv¨ul ´erz´ekeny az adatok sorrendj´ere, ´es nem sk´ala-invari´ans, hiszen a CF-f´aban l´ev˝o klaszterek maxim´alis ´atm´er˝oj´et a felhaszn´al´onak kell megadnia.

7.7.4. A CURE algoritmus

A CURE (Clustering Using REpresentatives) algoritmus [51] ´atmenet a BIRCH ´es a single linkage elj´ar´as k¨oz¨ott a reprezent´ans elemek sz´am´at illet˝oen (a BIRCH-ben a k¨oz´eppont a rep-rezent´ans pont, a single linkage-ben a klaszter ¨osszes elem´et sz´amon tartjuk.). Egy klasztert c darab (aholc el˝ore megadott konstans) elem jellemez. Ezek az elemek pr´ob´alj´ak megragadni a klaszter alakj´at. Ennek k¨ovetkezm´enye, hogy a CURE nem ragaszkodik az eliptikus klaszterek-hez.

Hierarchikus elj´ar´as l´ev´en, kezdetben minden elem k¨ul¨on klaszter, majd elkezd˝odik a klasz-terek egyes´ıt´ese. Az egyes´ıt´esnek h´arom l´ep´ese van.

I. A reprezent´ans pontok alapj´an kiv´alasztja a k´et legk¨ozelebbi klasztert. K´et klaszter t´avols´ag´at reprezent´ans pontjaik t´avols´ag´anak minimuma adja.

II. Egyes´ıti a klasztereket, majd a 2c reprezent´ans pont k¨oz¨ul kiv´alaszt c darabot, ame-lyek v´arhat´oan j´ol fogj´ak reprezent´alni az egyes´ıtett klasztert. Ennek m´odja a k¨ovetkez˝o.

Legyen az els˝o reprezent´ans pont a k¨oz´eppontt´ol legt´avolabbi elem. A k¨ovetkez˝o c−1 l´ep´esben mindig az el˝oz˝oleg kiv´alasztott ponthoz k´epest a legt´avolabbit v´alasszuk repre-zent´ans elemnek.

III. A reprezent´ans pontokat

”¨osszeh´uzza”, azaz az ´altaluk kijel¨olt k¨oz´eppont fel´e mozdulnak

´

ugy, hogy az ´uj t´avols´ag a k¨oz´eppontt´ol azα-szorosa legyen az eredeti t´avols´agnak. Ennek a l´ep´esnek a c´elja az outlierek hat´as´anak cs¨okkent´ese.

Az egyes´ıt´es akkor ´er v´eget, amikor a klaszterek sz´ama el´eri k-t. Az elj´ar´as v´egezt´evel rendel-kez´es¨unkre ´all c reprezent´ans ponttal jellemzett k darab klaszter. Ezut´an a teljes adatb´azis egyszeri v´egigolvas´as´aval az elemeket besoroljuk a hozz´a legk¨ozelebbi klaszterbe a legk¨ozelebbi reprezent´ans pont alapj´an.

A CURE algoritmust felk´esz´ıtett´ek, hogy kezelni tudjon nagy adathalmazokat is. V´eletlen mint´at vesz, azt felosztja r´eszekre, majd az egyes r´eszeket klaszterezi (ez a r´esz teh´at p´arhuzamos´ıthat´o). A kapott klaszterekb˝ol v´eg¨ul kialak´ıtja a v´egs˝o klasztereket. A r´eszletek ´es az algoritmus sor´an felhaszn´alt adatszerkezetek (k-d fa ´es kupac) ir´ant ´erdekl˝od¨oknek aj´anljuk a [51]-t.

A CURE algoritmus sz´amos hib´aval rendelkezik:

I. Az elemeknek vektort´erben adottnak kell lenni¨uk.

II. Minden klasztert r¨ogz´ıtett sz´am´u reprezent´ans pont jellemez. De mi´ert jellemezzen ugyan-annyi pont egy kis k¨or alak´u klasztert ´es egy nagy am˝oba alak´ut ? Term´eszetesebb lenne, ha a reprezent´ans pontok sz´ama f¨uggene a klaszter m´eret´et˝ol ´es alakj´at´ol.

III. A reprezent´ans pontok kiv´alaszt´asa sem t´ul kifinomult. A m´odszer nem a klaszter alakj´at fogja meghat´arozni, hanem ink´abb egy konvex burkot. Gondoljuk meg, ha egy k¨or alak´u klaszterben van egy bem´elyed´es, akkor a bem´elyed´es k¨orny´ek´en tal´alhat´o pontokat sosem fogja az elj´ar´as reprezent´asnak v´alasztani, hiszen ˝ok k¨ozel vannak a t¨obbi ponthoz. Am˝oba alak´u klasztern´el teh´at a reprezent´ans pontok alapj´an nem lehet meg´allap´ıtani, hogy hol vannak a bem´elyed´esek, ´ıgy azt sem d¨onthetj¨uk el, hogy egy nagy ellipszissel van dolgunk, vagy egy ´erdekes alak´u am˝ob´aval.

IV. Klaszter egyes´ıt´ese ut´an a reprezent´ans pontokat ¨osszeh´uzzuk a k¨oz´eppont fel´e. Nagy klaszter eset´eben sok egyes´ıt´es, ´ıgy sok ¨osszeh´uz´as van. Az ¨osszeh´uz´as ´altal t´avolabb ker¨ulnek a reprezent´ans pontjai m´as reprezent´ans pontokt´ol, ´ıgy egyre ritk´abban lesz kiv´alasztva egyes´ıt´esre. Mintha az algoritmus ,,b¨untetn´e” a nagy klasztereket.

V. Rosszul kezeli az elt´er˝o s˝ur˝us´eg˝u pontokat. Ezt legink´abb az al´abbi ´abra illusztr´alja. A

r r r r r r r

7.4. ´abra. Hib´as klaszterez´es: elt´er˝o s˝ur˝us´eg˝u klaszterek eset´en

CURE az 1-es ´es 2-es klasztereket fogja egyes´ıteni (azok reprezent´ans pontjai vannak egym´ashoz legk¨ozelebb) a 3-as ´es 4-es klaszterek egyes´ıt´ese helyett.

Megjegyezz¨uk, hogy az algoritmust bemutat´o cikk hossz´u bevezet˝oj´eben ´eppen arra h´ıvta fel a figyelmet, hogy a m´asok ´altal publik´alt algoritmusok mennyire rosszul kezelik a k¨ul¨onb¨oz˝o m´eret˝u ´es am˝oba alak´u klasztereket. Ennek ellen´ere a tesztekben bemutatott adathalmazban nagys´agrendileg azonos m´eret˝uek voltak a klaszterek ´es alakjuk elliptikus volt.

7.7.5. A Chameleon algoritmus

A Chameleon k´et nagy f´azisra oszlik. Kiindul´ask´ent el˝o´all´ıtja a k-legk¨ozelebbi gr´afot, majd ezt r´eszekre osztja. A m´asodik f´azisban bizonyos r´eszeket egyes´ıt, el˝o´all´ıtva ezzel a v´egleges csoportokat.

A Chameleon az els˝o olyan hierarchikus algoritmus, amely a klaszterek egyes´ıt´es´en´el nem csak a klaszterek t´avols´ag´at (d(Ci, Cj)) veszi figyelembe, hanem az egyes klasztereken bel¨uli t´avols´agokat is, pontosabban a relat´ıv bels˝o kapcsol´od´asukat (RI(Ci, Cj)) is (relative inter-connectivity). Abban az esetben egyes´ıt k´et klasztert, amennyiben d(Ci, Cj) ´es RI(Ci, Cj) is nagy ´ert´eket vesz fel. Ennek az ¨otletnek k¨osz¨onhet˝o, hogy a Chameleon – szemben az eddigi algoritmusokkal – j´ol tud klaszterezni elt´er˝o s˝ur˝us´eg˝u adathalmazokat is. N´ezz¨uk meg, hogyan defini´alja az algoritmus k´et klaszter relat´ıv bels˝o kapcsol´od´as´at ´es relat´ıv t´avols´ag´at.

Relat´ıv t´avols´ag

Relat´ıv bels˝o kapcsol´od´as

In document Magyar nyelv˝ u irodalom (Pldal 184-188)