• Nem Talált Eredményt

Duplikátumok kisz¶rése

In document Kinek szól ez a jegyzet? (Pldal 98-103)

El®feldolgozás, távolságfüggvények

3.2. Távolsági függvények

3.3.8. Duplikátumok kisz¶rése

Az egyik leggyakoribb el®feldolgozási, adattisztítási lépés a duplikátumok k-isz¶rése. Duplikátumok több okból keletkezhetnek: tévedésb®l ugyanazon ügy-felet többször visszük fel az adatbázisba, ugyanazon objektum több

adatforrás-ban is jelen van, és ezért az adatok integrációja során többszörösen is bekerül az integrált adatbázisba. Duplikátumok kisz¶rése során az a célunk, hogy a valós világ egy objektuma csak egyszer szerepeljen az adatbázisban.

A legegyszer¶bb esetben pontosan egyez® duplikátumokat keresünk, azaz olyan objektumokat, amelyek minden egyes attribútuma pontosan megegye-zik. Ekkor egyszer¶ annak eldöntése, hogy két objektum duplikátum-e vagy sem, ugyanakkor egy naív implementáció, amely során minden egyes objektum-párt vizsgálunk, túlságosan sok ideig tarthat nagy adatbázisok esetén, hiszen az objektumpárok száma négyzetes az objektumok számában. Ezért a naív implementáció helyett szokás az objektumok sorbarendezése. Az objektumok darabszámátn-nel jelölve, a sorbarendezés számítási költségeO(nlogn), amely jóval kisebb O(n2)-nél. A sorbarendezés után a duplikátumok egymás mellé kerülnek, elég egyszer végigolvasni az adatbázist a sorrendezésnek megfelel®en a duplikátumok megtalálásához.

A pontosan egyez® duplikátumok keresésénél sokkal nagyobb kihívást jelent a közelít®leg egyez® duplikátumok keresése: olyan hasonló bejegyzések azonosí-tása, melyek egyazon valós objektumnak felelnek meg. Ilyen eset például akkor fordul e®, amikor egy ügyfelet többször vittek fel a rendszerbe, de nevét és cí-mét eltér® írásmóddal rögzítették. Hasonló kihívással állunk szemben több, kü-lönböz® helyr®l, például kükü-lönböz® webes áruházból származó termékleírások integrációja során is. Keres®rendszerek szintén használnak duplikátumkeresést (3.11. ábra). A következ®kben a közelít®leg egyez® duplikátumok keresésével foglalkozunk.

Sorted neighborhood technika

Feltételezzük, hogy létezik egy szabályrendszer, amely alapján el tudjuk dön-teni két adatbázisbeli objektumról, hogy azok duplikátumok-e vagy sem. Ez természetesen alkalmazásfügg®, de szakért®k segítségével számos alkalmazás-ban lehetséges elég jó szabályokat deniálni.

A szabályrendszert minden egyes párra alkalmazni túlságosan számításigé-nyes, hiszen a párok száma négyzetes az adatbázisbeli objektumok számában.

Ezen probléma kikerülésére használhatjuk az ún. sorted neighborhood techni-kát. Ennek során minden egyes adatbázisbeli objektumhoz egy-egy kulcsérté-ket rendelünk. A kulcsérték például egy néhány karakter hosszú karakterlánc lehet. Egy objektumhoz rendelt kulcsértéket az attribútumok alapján hatá-rozzák meg. A kulcsérték képzésének szabályait úgy választjuk meg, hogy a közel azonos objektumok amelyek potenciálisan duplikátumok hasonló kulcsértékeket kapjanak. Ezt követ®en rendezzük az adatbázist a kulcsérték szerint. Ha jól választottuk meg a kulcsképzés szabályait, a duplikátumok a rendezés hatására egymás közelébe kerültek. Ezt követ®en a rendezés szerinti

3.11. ábra. A Google Scholar a duplikátumok gyelembe vételével listázza a találatokat.

sorrendben végigolvassuk az adatbázist, és az egymástól legfeljebbwpozíciónyi távolságban lév® objektumokra alkalmazzuk a korábban deniált szabályokat és eldöntjük róluk, hogy duplikátumok-e, így jóval kevesebb objektum-párt vizsgálunk, mintha minden párt vizsgálnánk.

Az eljárás sikere nagyban múlik azon, hogyan választottuk meg a kulcs-képzési eljárást. Lehet, hogy a duplikátumok egy részének megtalálásához egy adott kulcsképzési eljárás ideális, míg más típusú duplikátumokat más módon képzett kulccsal vagyunk képesek megtalálni. Ezért érdemes többféle kulcs-képzési ejárással végrehajtani a sorted neighborhood technika szerinti dupliká-tumkeresést, és a kapott eredményeket egyesíteni.

Regressziós és osztályozó modellek a duplikátumok sz¶résére

Eddig azt feltételeztük, hogy létezik egy szabályrendszer, amely alapján el tudjuk dönteni két adatbázisbeli objektumról, hogy azok duplikátumok-e vagy sem. Ilyen szabályok azonban nem feltétlenül adottak, és nem mindig triviális, hogyan deniáljunk ilyen szabályokat.

Ha a felhasználó néhány száz objektumpárról megadja, hogy azok dupliká-tumok-e vagy sem, akkor a használhatjuk a következ® fejezetben bemutatandó oszályozó és regressziós algoritmusokat annak eldöntésére, hogy a két objektum duplikátum-e vagy sem. Az osztályozó vagy regressziós algoritmus számára egy

objektum ilyenkor két eredeti objektumból képzett párnak felel meg. Két osz-tály van: egyik oszosz-tály annak felel meg, hogy a párt alkotó eredeti objektumok duplikátumok, a másik pedig annak, hogy a párt alkotó eredeti objektumok nem duplikátumok [Christen, 2008].

Ezt az eljárást kombinálhatjuk a sorted neighborhood technikával. Érdekes-ségként jegyezzük meg, hogy az osztályozó és regressziós modellek segítségével végzett duplikátumkereséshez nagyon hasonló technikákat használhatunk web-lapok automatikus csoportosítására [Romano és tsa., 2009] és fényképek ese-mények szerinti automatikus csoportosítására [Reuter és tsa., 2011].

3.3.9. Aggregáció

Aggregációra egyrészt szükség lehet az adatok méretének csökkentésére, hogy az adathalmaz beférjen a memóriába, másrészt pedig azért, mert a mintázatok nem minden szinten ismerhet®k fel: lehet, hogy elemi szinten nem áll rendel-kezésre elég információ vagy túl nagy az elemi szint¶ mérések szórása. Ha például egy bolthálózat eladásait kívánjuk elemezni, el®feldolgozási lépésként célszer¶ lehet az eladásokat ügyfelenként összesíteni, vagy a konkrét elem-zési feladattól függ®en akár magasabb szinten is összesíthetjük az eladásokat, például körzetenként, napok vagy hetek szintjén, stb. Hasonlóképpen, ha a csapadékmennyiséget egy négyzetkilóméteres területeken mérjük, ez túl rész-letes lehet, ezért összevonhatjuk a szomszédos cellákat és nagyobb egységeket alakíthatunk ki.

Az aggregációval vigyáznunk kell: ha rosszul választjuk meg, hogy milyen szinten aggregálunk vagy túl sok elemi meggyelést vonunk össze, lehet, hogy nem leszünk képesek felismerni az adatbázisbeli mintázatokat.

3.3.10. Monotonizáció

Osztályozási feladatok esetében az osztályattribútum (más néven osztálycímke) gyakran ordinális. Ha például egy banki vagy biztosítási környezetben osztá-lyozunk ügyfeleket aszerint, hogy mennyire kockázatosak, és t¹ osztályt hozunk létre, az els® osztály jelölheti a legkevésbé kockázatos ügyfelek csoportját, a ti-zes pedig a legkockázatosabb ügyfeleket. Termékek ajánlásakor az ötos osztály felelhet meg azon termékeknek, amelyeket egy adott felhasználó legnagyobb eséllyel vásárol meg, a négyes osztály termékeit ugyanezen felhasználó viszony-lag jó esélyel vásárolja meg, de kisebb eséllyel, mint az ötös osztály termé-keit, az 1-es osztályba pedig azokat a termékeket sorolhatjuk, amelyeket az adott felhasználó szinte biztosan nem vásárol meg. Ilyen esetekben, az álta-lános célú osztályozási algoritmusok mellett, speciális, úgynevezett monoton klasszikációs algoritmusokat is használhatunk [Horváth, 2006]. A monoton

klasszikációs algoritmusok sikeres alkalmazásához szükséges, hogy az adatbá-zisbeli objektumokra (példányokra) teljesüljön az alábbi monotonitás: tegyük fel, hogy az objektumainkat az A1, A2, ..., Ak attribútumokkal írjuk le, jelöl-jük ax1-szel, ax2-szel, ... axk-szel illetve ay1-nal, ay2-nal, ... ayk-nal az attribútumok értékeit adott x és y objektumok esetében, az x és y objektumok ordinális osztályát cx-szel és cy-nal jelöljük, ekkor:

a1x ≤a1y ∧a2x ≤a2y∧...⇒cx ≤cy.

Azt tételezzük tehát fel, hogy mind az osztályok, mind az attribútum-értékek között van valamilyen preferencia: ha egy y objektum egyetlen attribútum-értéke sem kevésbé kedvez®, mint az x-é, akkor y osztálya sem lehet kevésbé kedvez®, mintx-é.

A következ®kben a monotonitást illetve egy az adatbázis monotonná ala-kítását szemléltetjük egy példán keresztül. Tegyük fel, hogy egy egészségügyi alkalmazásban tároljuk az emberek testsúlyát, testmagasságát, azt, hogy saját bevallásuk szerint mennyi cigarettát szívnak és mennyi alkoholt fogyasztanak.

Az embereket kockázati osztályokba soroljuk aszerint, hogy életmódjuk alapján mennyire várható, hogy egészségügyi problémákkal néznek majd szembe. Mi-nél többet dohányzik valaki, annál nagyobb az egészségügyi problémák esélye, ezért tehát a dohányzást leíró attribútumra teljesül a monotonitás. Feltehet-jük azt is, hogy az alkoholfogyasztás is monoton. Ugyanez azonban nem igaz a testsúlyra: túl kicsi és túl nagy testsúly egyaránt kockázatot jelent. A test-súlyból és a testmagasságból kiszámolhatjuk a 3.3.2. fejezetben már említett testtömeg indexet, és megnézhetjük az ideális testtömegindext®l való abszolút eltérést. Az ideális testtömegindext®l való abszolút eltérés már monoton lesz:

minél nagyobb az eltérés, annál kockázatosabb az egyén. Ha tehát a testsúly és testmagasság attribútumokat lecseréljük a testtömegindex ideálistól való el-térésével, akkor monotonizáltuk az adatbázist.

Amint a példa mutatja, egyes esetekben monotonizálhatjuk adatainkat szak-területi háttértudás alapján. Ennek hiányában azonban szükség van automa-tikus monotonizációs eljárásokra, melyekkel ebben a jegyzetben nem foglal-kozunk részletesebben. Az érdekl®d®knek ajánljuk Horváth és társai (2011) cikkét, amelyben egy automatikus monotonizációs eljárásra láthatunk példát.

4. fejezet

In document Kinek szól ez a jegyzet? (Pldal 98-103)