• Nem Talált Eredményt

k-legk¨ozelebbi szomsz´ed m´odszere

In document Magyar nyelv˝ u irodalom (Pldal 123-129)

6. Oszt´ alyoz´ as ´ es regresszi´ o 113

6.3. k-legk¨ozelebbi szomsz´ed m´odszere

A k-legk¨ozelebbi szomsz´ed m´odszere egy ,,lusta” klasszifik´al´o elj´ar´as, amely nem ´ep´ıt mo-dellt. Alapelgondol´asa, hogy a hasonl´o attrib´utum´u objektumok hasonl´o tulajdons´agokkal

b´ırnak. A hasonl´os´agot (igaz´ab´ol a k¨ul¨onb¨oz˝os´eget (l´asd 3.2. r´esz)) a klaszterelemz´esn´el is haszn´alt t´avols´agf¨uggv´ennyel m´erj¨uk. A tanul´o adatb´azist elt´aroljuk ´es amikor egy ismeret-len objektumot kell klasszifik´alnunk, akkor megkeress¨uk a t´avols´agf¨uggv´eny szerinti k da-rab legk¨ozelebbi pontot, ´es az objektumot abba a kateg´ori´aba soroljuk, amely a legt¨obb-sz¨or el˝ofordul (leggyakoribb) a k szomsz´ed k¨oz¨ott (t¨obbs´egi szavaz´as). A m´odszer egyfaj-ta lok´alis s˝ur˝us´egf¨uggv´eny becsl˝o elj´ar´asnak is tekinthet˝o. Regresszi´o eset´en a szomsz´edok oszt´aly´ert´ekeinek ´atlaga lesz a kimenet.

A m´odszer regresszi´ora is haszn´alhat´o. Ekkor a t¨obbs´egi szavaz´as helyett a szomsz´edok oszt´aly´ert´ek´enek ´atlagak´ent szok´as megadni a j´osl´ast.

Id´ezz¨uk fel az optim´alis el˝orejelz˝ore tett meg´allap´ıt´asunkat (l´asd 6.1 egyenl˝os´eg), regresszi´o eset´en:

f(x) =E[Y|X=x],

azaz tetsz˝oleges pontban az optim´alis oszt´alyoz´o ´ert´eke megegyezik a felt´eteles v´arhat´o ´ert´ekkel.

Oszt´alyoz´as eset´en pedig

f(x) =yl, amennyiben P(yl|X=x) = max

yiY

P(yi|X=x).

A k-legk¨ozelebbi szomsz´ed a k¨ovetkez˝o regresszi´os f¨uggv´enyt adjat tetsz˝oleges x pontra f(x) =b

Pyi

k , ahol xi∈Nk(x), oszt´alyoz´as eset´en pedig :

f(x) =b yk, amennyiben f req(yk|xi∈Nk(x)) = max

y`Y f req(y`|xi∈Nk(x)),

ahol Nk(x) az x pont k-legk¨ozelebbi szomsz´edj´at, Ave az ´atlagot, freq pedig a gyakoris´agot jel¨oli.

Az fb(x) tulajdonk´eppen az f(x) k¨ozel´ıt´ese. A k¨ozel´ıt´es k´et okb´ol k¨ovetkezik:

I. regresszi´o eset´en a v´arhat´o ´ert´ek helyett a minta´atlagot haszn´altuk, oszt´alyoz´as eset´en pedig a val´osz´ın˝us´eg helyett a relat´ıv gyakoris´agot,

II. az x pontban vett felt´etel helyett azx k¨ornyezet´et vett¨uk.

Sok tan´ıt´opont eset´eben tetsz˝oleges ponthoz k¨ozel lesznek a szomsz´edai, tov´abb´a az ´atlag egyre stabilabb lesz, amennyiben k egyre nagyobb. Be lehet l´atni, hogy P(X, Y)-ra tett enyhe felt´etelek mellett fb(x) →E[Y|X = x], amennyiben m, k → ∞ ´es N/k → 0. Ezek szerint a k-legk¨ozelebbi szomsz´ed egy univerz´alis approxim´ator, nem is ´erdemes tov´abbi oszt´alyz´okkal foglalkoznunk?!?

Legt¨obb esetben nem ´all rendelkez´es¨unkre sok tan´ıt´opont. Ha fel tudunk tenni az oszt´alyoz´asra valamilyen strukt´ur´alis felt´etelt (pl. linearit´as), akkor ezt kihaszn´alva pontosabb modellt ´ep´ıthet¨unk, mint azt a k-legk¨ozelebbi szomsz´ed adna. Tov´abbi probl´ema, hogy magas dimenzi´osz´am mellett (teh´at sok attrib´utum eset´en) a konvergencia lass´u.

A legk¨ozelebbi szomsz´ed m´odszer ´abr´azol´as´an´al (k = 1 eset´en) kedvelt eszk¨oz a Voronoi diagramm. A fel¨uletet felosztjuk tartom´anyokra ´ugy, hogy minden tartom´anyba egy tan´ıt´o

6.1. ´abra. Tan´ıt´opontok a s´ıkon (bal oldali ´abra) ´es a Voronoi tartom´anyok (jobb oldali ´abra)

pont essen ´es igaz legyen, hogy a tartom´anyon bel¨uli b´armely pont a tan´ıt´opontok k¨oz¨ul a tartom´any tan´ıt´opontj´ahoz van a legk¨ozelebb. Egy ilyen feloszt´ast l´athatunk a 6.1 ´abr´an1.

Az oszt´alyoz´ashoz term´eszetesen nem kell meghat´arozni a tartom´anyokat ´es megn´ezni, hogy az oszt´alyozand´o pont melyik tartom´anyba tartozik. Egyszer˝uen n´ezz¨uk v´egig a tan´ıt´opontokat

´es v´alasszuk ki a legink´abb hasonl´ot.

6.3.1. Dimenzi´ o´ atok - Curse of dimensionality

A legk¨ozelebbi szomsz´ed m´odszer egy univerz´alis approxim´ator, tetsz˝oleges oszt´alyoz´o f¨uggv´enyt k´epes reproduk´alni, csak el´eg tan´ıt´opont kell hozz´a. A m´odszert lok´alis appro-xim´atornak is szok´as h´ıvni, mert tetsz˝oleges pont oszt´aly´ert´ek´et a (lok´alis) k¨ornyezet´enek tan´ıt´o´ert´ekeinek ´atlag´aval helyettes´ıti. A m´odszer j´ol m˝uk¨odik alacsony dimenzi´okn´al, de magas dimenzi´okn´al cs˝od¨ot mond. Erre, mint dimenzi´o´atok szoktak hivatkozni ´es sz´amos szeml´eltet´ese, interpret´aci´oja l´etezik. A legk¨onnyebben ´erthet˝o az al´abbi.

Tetsz˝oleges pont k¨ornyezet´eben el´eg tan´ıt´opontnak kell lenni. Ide´alis esetben tetsz˝oleges x pont k¨ornyezet´en azx-t˝ol legfeljebbt´avols´agra l´ev˝o pontokat ´ertj¨uk. Ez egydimenzi´os esetben egy 2 hossz´u szakaszt, k´etdimenzi´os esetben sugar´u k¨ort, h´aromdimenzi´os esetben sugar´u g¨omb¨ot jelent. Ha azt szeretn´enk, hogy a keres´esi t´erben a tan´ıt´opontok s˝ur˝us´ege r¨ogz´ıtett legyen, akkor a tan´ıt´opontok sz´am´anak exponenci´alisan kell n˝onie a dimenzi´o n¨ovel´es´evel. A gyakorlatban a tan´ıt´opontok adottak, ami ´altal´aban behat´arolja a dimenzi´ok ´es ´ıgy a figyelembe vehet˝o attrib´utumok sz´am´at.

Ez nem jelenti azt, hogy magas dimenzi´okban nem lehet oszt´alyoz´o f¨uggv´enyt tal´alni, csak megk¨ot´est kell tenn¨unk az oszt´alyoz´o f¨uggv´eny t´ıpus´ara vonatkoz´oan. P´eld´aul, ha ´ugy gondol-juk, hogy az oszt´alyoz´o egy hipers´ıkkal le´ırhat´o, akkor a dimenzi´ok sz´am´anak n¨ovel´es´evel csak line´arisan n¨ovekszik a sz¨uks´eges tan´ıt´opontok sz´ama (hiszen k´etdimenzi´os esetben k´et pont hat´aroz meg egy egyenest, h´arom dimenzi´on´al h´arom pont hat´aroz meg egy s´ıkot, stb.).

6.3.2. A legk¨ ozelebbi szomsz´ ed ´ erz´ ekenys´ ege

A legk¨ozelebbi szomsz´ed m´odszer h´atr´anya, hogy ´erz´ekeny a f¨uggetlen attrib´utumokra.

L´assunk egy p´eld´at. Feladatunk, hogy egy d¨ont´esi modellt adjunk a szorgalmas di´akokra. Az egyik attrib´utum a g¨orgetett tanulm´anyi ´atlag a m´asik a hajhossz. A 6.2 ´abra mutatja a tan´ıt´o

1A szeml´eltet˝o ´abr´at a http://www.manifold.net/doc/7x/transform_voronoi_operators.htm oldalr´ol olt¨ott¨uk le.

szorgalmatlan szorgalmas

2 3 4 5

1 jegyátlag

hajhossz

2 3 4 5

1 jegyátlag

szorgalmatlan szorgalmas

6.2. ´abra. F¨uggetlen attrib´utumok hat´asa a legk¨ozelebbi szomsz´ed oszt´alyoz´asra

pontokat, c´el a z¨olddel jel¨olt tanul´o oszt´alyoz´asa. Ha csak a jegy´atlagot tekintj¨uk, akkor a szor-galmasak k¨oz´e soroljuk. Ha a t´avols´ag meg´allap´ıt´as´an´al a hajhossz is figyelembe vessz¨uk, akkor egy olyan hallgat´o lesz hozz´a a legk¨ozelebb, akir˝ol tudjuk, hogy szorgalmatlan. S˝ot, ha euklide-szi t´avols´agot haszn´alunk ´es a f¨uggetlen attrib´utum ´ert´ekei j´oval nagyobbak a f¨ugg˝o attrib´utum

´ert´ekein´el, akkor a f¨uggetlen attrib´utum

”elnyomja” a f¨ugg˝o attrib´utumot.

Sz´amos megold´ast javasolnak a f¨uggetlen attrib´utum ´altal okozott hiba kik¨usz¨ob¨ol´es´ere.

(1.) Ha tehetj¨uk haszn´aljunk t¨obb tan´ıt´o pontot, (2.) k´erdezz¨uk meg az alkalmaz´asi ter¨ulet szak´ert˝oj´et, hogy a t´avols´ag meghat´aroz´as´an´al mely attrib´utumokat vegy¨uk sz´am´ıt´asba, vagy (3.) alkalmazzunk statisztikai tesztet a f¨uggetlens´eg meg´allap´ıt´as´ara. Amennyiben nincs sok attrib´utumunk, akkor meghat´arozhatjuk az oszt´alyoz´as pontoss´ag´at az ¨osszes attrib´utum r´eszhalmaz eset´en majd kiv´alaszthatjuk a legjobbat.

Sok attrib´utum eset´en az ¨osszes attrib´utumhalmaz kipr´ob´al´asa t´ul sok id˝ot/er˝oforr´ast k´ıv´an.

Egy (4.) moh´o, b˝ov´ıt˝o elj´ar´as egyes´evel b˝ov´ıten´e a tesztelend˝o attrib´utumhalmazt ´ugy, hogy az a legjobb oszt´alyoz´ast adja. Ha az oszt´alyoz´as min˝os´ege nem javul, akkor befejezn´enk a b˝ov´ıt´est.

Ez a m´odszer kiselejtezn´e azX1´esX2bin´aris attrib´utumokat ann´al az oszt´alyoz´asn´al, amelyben a magyar´azand´o attrib´utum ´ert´ekeX1 ´esX2 modul´o kett˝ovel vett ¨osszege ´es X1, X2 egym´ast´ol (´es a magyar´azand´o attrib´utumt´ol is) teljesen f¨uggetlenek. Az (5.) cs¨okkent˝o m´odszerek a teljes attrib´utumhalmazb´ol indulna ki ´es minden l´ep´esben egy attrib´utumot dobna ki.

A legk¨ozelebbi szomsz´ed m´odszer ´erz´ekeny a m´ert´ekegys´egre is. Ez logikus, hiszen a legk¨oze-lebbi szomsz´ed m´odszer ´erz´ekeny a t´avols´ag defin´ıci´oj´ara, az pedig nagyban f¨ugg az egyes att-rib´utumok m´ert´ekegys´eg´et˝ol. A probl´em´at a 6.3 ´abra szeml´elteti.

Az egyik attrib´utum jel¨olje egy ember hajhossz´at az ´atlagt´ol, a m´asik attrib´utum a bev´etelt jel¨oli doll´arban. Az els˝o ´abr´an a hosszt m´eterben m´erj¨uk a m´asodikban pedig l´abban. Az oszt´alyozand´o (z¨old) ponthoz egy piros van a legk¨ozelebb az els˝o esetben, m´ıg a m´asodik eset-ben k´ek pont a legk¨ozelebbi. A p´eld´ab´ol k¨ovetkezik, hogy a legk¨ozelebbi szomsz´ed m´odszer nem sk´alainvari´ans.

Az eml´ıtett probl´em´ak nem felt´etlen¨ul az oszt´alyoz´o hib´ai. A legk¨ozelebbi szomsz´ed m´odszerben a t´avols´agf¨uggv´eny k¨ozponti szerepet j´atszik. A helyes t´avols´agf¨uggv´eny meg-hat´aroz´as´ahoz v´alasszuk ki a fontos attrib´utumokat, normaliz´aljuk, ha sz¨uks´eges, illetve fon-toss´aguk alapj´an s´ulyozzuk ˝oket.

A k-legk¨ozelebbi szomsz´ed egy m´odos´ıt´as´at s´ulyozott legk¨ozelebbi szomsz´ed m´odszernek h´ıvj´ak. Ebben akszomsz´ed minden tagj´anak akkora a s´ulya, amekkora az oszt´alyozand´o pontt´ol

6.3. ´abra. M´ert´ekegys´eg hat´asa a legk¨ozelebbi szomsz´ed oszt´alyoz´ora

vett t´avols´ag´anak inverze (vagy valamilyen antimonoton f¨uggv´enye). Az oszt´alyozand´o ponthoz k¨ozel fekv˝o tan´ıt´opontoknak teh´at nagyobb szavuk van a v´egs˝o oszt´aly meghat´aroz´as´aban, mint a t´avolabb es˝o pontoknak.

Weka 3.5.7 A legk¨ozelebbi szomsz´ed odszer´et (teh´at amikor csak egy szomsz´edot vesz¨unk figyelembe) a weka.classifiers.lazy.IB1 oszt´aly implement´alja. K´et pont t´avols´ag´anak meghat´aroz´as´an´al az euklideszi norm´at haszn´alja. Ha t¨obb legk¨ozelebbi pontja van egy oszt´alyozand´o pontnak, akkor az els˝ok´ent megtal´alt alapj´an fog oszt´alyozni.

6.3.3. Az oszt´ alyoz´ as felgyors´ıt´ asa

Egy ´uj elem oszt´alyoz´as´an´al meg kell hat´aroznunk a k-legk¨ozelebbi szomsz´edot. Ez a teljes adatb´azis egyszeri, line´aris v´egigolvas´as´at jelenti. A mai sz´am´ıt´og´epes architekt´ur´aknak ked-vez ez a feladat. A tan´ıt´opontok elf´ernek a mem´ori´aban ´es a prefetch ill. pipeline technik´ak nagyban gyors´ıtj´ak a keres´est. Tal´an ez az oka, hogy teszteredm´enyek szerint a kifinomultabb, bonyolultabb m´odszerek is legfeljebb egy nagys´agrendet vernek a line´aris m´odszerre.

A 70-es ´evekt˝ol egyre t¨obb ´ır´as sz¨uletett, amelynek t´em´aja a line´aris m´odszern´el gyorsabb algoritmus kidolgoz´asa. Az ´uj m´odszerek ´altal´aban az ´un. branch-and-bound technik´at alkal-mazz´ak, melynek sor´an a tan´ıt´o pontok ter´et felosztj´ak ´es csak bizonyos r´eszeket vizsg´alnak a keres´es sor´an. Az el˝ofeldolgoz´asi l´ep´esben gy´urnak valamit az adatb´azison, ´altal´aban egy speci´alis adatstrukt´ur´aba t´arolj´ak a tan´ıt´opontokat. Amennyiben a tan´ıt´as sor´an egyetlen nu-merikus attrib´utumot vesz¨unk figyelembe, akkor ha, mint el˝ofeldolgoz´as, sorba rendezz¨uk az adatokat (O(mlogm) id˝o alatt), akkor a legk¨ozelebbi szomsz´edok meghat´aroz´as´ahoz O(logm) l´ep´es el´eg. Fut´asi id˝o szempontj´ab´ol azonos asszimptotik´aval rendelkez˝o algoritmus adtak k´et magyar´az´o v´altoz´o eset´eben [10].

T¨obb magyar´az´o attrib´utum eset´en (nagyobb dimenzi´okn´al) a legismertebb m´odszer KD-f´akat haszn´al [13]. Az algoritmus az el˝ofeldolgoz´as sor´an a teret hipert´eglatestekre osztja, egyes

6.4. ´abra. Tartom´anyok meghat´aroz´asa KD-fa ´ep´ıt´es´en´el (bal oldali ´abra) ´es a KD-fa (jobb oldali ´abra)

t´eglatesteket pedig tov´abbi t´eglatestekre. A hipert´eglatestek oldalai p´arhuzamosak egym´assal

´es a tengelyekkel ´es egy t´eglatest kett´eoszt´asa mindig egy az oldalfallal p´arhuzamos s´ık ment´en val´o kett´eoszt´ast jelent. Egy t´eglatestet nem oszt tov´abb, ha a t´eglatestben tal´alhat´o pontok sz´ama adott korl´at alatt van.

A KD-fa bin´aris ´es minden csom´opontj´anak megfelel egy hipert´eglatest. A levelekhez hozz´a vannak rendelve azok a tan´ıt´opontok, amelyek a lev´el ´altal meghat´arozott t´eglatesbe es-nek. Tetsz˝oleges csom´opont gyermekeihez tartoz´o hipert´eglatest a csom´oponthoz tartoz´o hi-pert´eglatest kett´eoszt´as´ab´ol j¨ott l´etre. A 6.4 ´abr´an n´eh´any tan´ıt´opont feloszt´asa l´athat´o ´es a feloszt´ashoz tartoz´o KD-fa. Figyelem, a t´eglatestek ´altal kijel¨olt terek nem oszt´alyoz´asi tar-tom´anyoknak felelnek meg. A KD-f´at haszn´al´o algoritmus garant´alja, hogy t´enyleg a legk¨oze-lebbi szomsz´edokat fogja megtal´alni.

Oszt´alyoz´asn´al nem csak azokat a tan´ıt´opontokat veszi figyelembe, amelyek abban a t´eglatestben vannak, amelyet az oszt´alyozand´o pont kijel¨ol. Az oszt´alyoz´as menete a k¨ovet-kez˝o : A fa cs´ucs´ab´ol kiindulva jussunk el addig a lev´elig, amely t´eglatestje tartalmazza az oszt´alyozand´o pontot. Hat´arozzuk meg a legk¨ozelebbi pontot. Amennyiben a legk¨oze-lebbi pont k¨ozelebb van, mint b´armelyik oldalfal – m´ask´epp fogalmazva, az oszt´alyozand´o pontb´ol a legk¨ozelebbi pontt´ol vett t´avols´aggal rajzolt hiperg¨omb nem metsz oldalfalat –, akkor le´allunk. Ellenkez˝o esetben meg kell vizsg´alni azt a hipert´eglatestet, amely fala k¨oze-lebb van, mint a legk¨ozek¨oze-lebbi pont. Ez a t´eglatest ugyanis tartalmazhat olyan pontot, amely k¨ozelebb van az eddig tal´alt legk¨ozelebbi ponthoz. A vizsg´aland´o t´eglatest nem biztos, hogy az oszt´alyozand´o pont ´altal kijel¨olt t´eglatest szomsz´edja a KD-f´aban. Lehet unokatestv´er, vagy so-kadrang´u unokatestv´er. Vegy¨uk ´eszre, hogy az egyszer˝u konstrukci´o k¨ovetkezt´eben (´erts oldalfa-lak p´arhuzamosak a tengelyekkel) nagyon gyorsan el tudjuk d¨onteni, hogy egy adott t´eglatestnek lehet-e olyan pontja, amely egy adott ponttol, adott t´avols´agn´al k¨ozelebb van.

A KD-fa ´ep´ıt´es´en´el k´et c´el lebeg a szem¨unk el˝ott :

I. A fa legyen kiegyens´ulyozott, abban a tekintetben, hogy minden t´eglatest ugyanannyi tan´ıt´opontot tartalmaz. Ez az´ert j´o, mert ha ki tudunk z´arni egy t´eglatestet a vizsg´alatb´ol,

akkor ezzel sok pontot szeretn´enk kiz´arni

II. A hipert´eglalapok legyenek kock´ak. Ekkor ugyanis nem fordulhat el˝o, hogy az oszt´alyozand´o pont ´altal kijel¨ol t´eglatesttel nem ´erintkez˝o t´eglatest tartalmazza a legk¨oze-lebbi szomsz´edot. Az elny´ujtott t´eglatestek nem kedveznek az algoritmusnak.

Hab´ar a m´asodik elv´ar´asnak nem biztos, hogy eleget tesz a k¨ovetkez˝o egyszer˝u m´odszer, m´egis a gyakorlatban j´o eredm´enyt ad. Ki kell jel¨olni a fal tengely´et, majd meg kell hat´arozni a hely´et. A tengely kijel¨ol´es´ehez n´ezz¨uk meg mekkora a sz´or´as az egyes tengelyekre n´ezve.

Legyen a fal a legnagyobb sz´or´ast eredm´enyez˝o tengelyre mer˝oleges. A fal hely´et pedig a medi´an hat´arozza meg, ´ıgy garant´alt hogy a pontok egyik fele az egyik t´eglatestbe a m´asik fele a m´asik t´eglatestbe fog ker¨ulni.

A KD-f´an´al vannak ´ujabb adatstrukt´ur´ak, ezek k¨oz¨ul a legismertebbek a Metric tree (Ball tree)[99, 137] ´es a Cover Tree [15]. A [73] cikkben a szerz˝ok azonban azt ´all´ıtj´ak, hogy ezek az ´uj m´odszerek nem mutatnak sz´amottev˝o javul´ast a KD-f´ahoz k´epest. ´All´ıt´asaikat a szerz˝ok sz´amos teszt eredm´eny´ere alapozz´ak, melyhez felhaszn´altak val´odi ´es gener´alt adatb´azisokat is.

Weka 3.5.7 Ak-legk¨ozelebbi szomsz´ed futtat´as´ahozk >1eset´en haszn´aljuk a weka.classifiers.lazy.IBk oszt´alyt. A KNN param´eter felel meg ak´ert´eknek, amelyet nem kell felt´etlen¨ul megadnunk. A weka a leave-one-out m´odszerrel (l´asd a 155 oldal) megpr´ob´alja a megfelel˝o k

´ert´eket meghat´arozni, amennyiben a crossValidate´ert´eke igaz.

Haszn´alhatjuk a s´ulyozott legk¨ozelebbi szomsz´ed m´odszert is (l´asd a 119). Ekkor v´alasztanunk kell a distanceWeighting param´eterrel, hogy a s´uly a t´avols´ag reciproka, vagy 1-t˝ol vett k¨ul¨onbs´ege adja.

A nearestNeighbourSearchAlgorithm kiv´alaszt´oval megad-hatjuk, hogy a legk¨ozelebbi szomsz´edok meghat´aroz´as´ahoz milyen m´odszert/adatstrukt´ur´at haszn´aljon a weka. Az alap´ertelmezett az egyszer˝u line´aris keres´es, de v´alaszthatunk KD-fa, Ball tree ´es Cover tree alap´u megold´asok k¨oz¨ul.

In document Magyar nyelv˝ u irodalom (Pldal 123-129)