150 likes | 243 Views
”Epämääräisen” tiedon yhdistämien. Jarkko Venna Numos Oy 15.9.2011 SAS Technical Club, Espoo. Numos Oy. Perustettu 2001, toimii Innopolissa Espoossa 10 SAS-osaajaa, useimmat heistä SAS-sertifioituja analytiikan ammattilaisia Palvelutarjontaa mm. : Analyyttinen konsultointi ja koulutus
E N D
”Epämääräisen” tiedon yhdistämien Jarkko VennaNumos Oy15.9.2011SAS Technical Club,Espoo
Numos Oy • Perustettu 2001, toimii Innopolissa Espoossa • 10 SAS-osaajaa, useimmat heistä SAS-sertifioituja analytiikan ammattilaisia • Palvelutarjontaa mm. : • Analyyttinen konsultointi ja koulutus • Business Intelligence ja tietovarastointi • SAS-konsultointi ja välinekoulutus • SAS Instituten kumppani vuodesta 2002 • Asiakkaita mm. kaupan, teollisuuden, vakuutuksen ja rahoituksen, terveyden-huollon ja tietoliikenteen aloilta NumosOy Jarkko Venna
Eri lähteistä tulevan tiedon yhdistäminen Normaali tilanne • Eri tietolähteissä on yhteinen uniikki yhdestä tai useammasta kentästä koostuva avain tai avain voidaan muodostaa tietojen perusteella. • Tiedon yhdistäminen voidaan tehdä automaattisesti Epämääräinen tilanne • Eri tietolähteissä ei ole yhteistä uniikkia avainta eikä sitä voida muodostaa. Datoissa oletetaan kuitenkin olevan yhteisiä tietoja. • Tiedon yhdistämistä ei voida yleensä täysin automatisoida. • Yhdistettäviä rivejä voi etsiä erilaisilla menetelmillä Numos Oy Jarkko Venna
Syitä avainten puuttumiseen • Data on peräisin eri järjestelmistä. • Esimerkiksi yritetään yhdistää kahden kaupan tuoterekisteriä. Samoja tuotteita on myynnissä molemmissa mutta eri tuotenimikkeellä/numerolla • Datassa on virheitä • Dataa on syötetty käsin ja avaimet voivat sisältää kirjoitusvirheitä • Yhdistettävien datojen koodaus on erilainen • Esimerkiksi käytetään lyhenteitä ja lyhentämättömiä termejä tai erilaisia tapoja lyhentää sanoja Numos Oy Jarkko Venna
Kirjoitusvirheitä sisältävien avainten yhdistäminen Perusstrategia Haetaan jokaiselle avaimelle vastine siten, että avaimen muuttaminen vastineeksi vaatii mahdollisimman pieniä muutoksia. Muutoksia voivat olla esim. Merkin vaihtuminen toiseksi, merkin lisääminen tai poistaminen, kahden peräkkäisen merkin paikan vaihtaminen. Muutosoperaatioille voidaan antaa erilaiset kustannukset. Kun merkkijonon toiseksi muuntamisen kustannukset lasketaan yhteen saadaan merkkijonojen välinen ”etäisyys”. Numos Oy Jarkko Venna
Merkkijonoetäisyyksien laskeminen SAS:lla COMPLEV(string-1, string-2 <,cutoff> <,modifiers>) • Laskee Levenstein etäisyyden kahden merkkijonon välillä • Etäisyys on muunnokseen tarvittavien lisäysten, poistojen tai yhden merkin vaihtojen lukumäärä • Symmetrinen COMPGED(string-1, string-2 <,cutoff> <,modifiers>) • Laskee yleistetyn muokkausetäisyyden kahden merkkijonon välillä • 14 eri muokkausoperaatiota kuten lisäys alkuu, poisto alusta tai merkin kahdentaminen • Muokkausoperaatioiden kustannuksia voi muuttaa CALL COMPCOST functiolla • Symmetrinen ainoastaan kun kustannukset on määritelty sopivasti • Jos on käytettävissä oikeiksi tiedettyjä pareja voidaan kustannukset optimoida parhaan tuloksen saamiseksi Numos Oy Jarkko Venna
Esimerkki: Levensthein etäisyydestä Sanojen "kitten" ja "sitting" välinenetäisyys on 3 • kitten → sitten (korvataan 's' 'k‘:lla) • sitten → sittin (korvataan 'i' 'e‘:llä) • sittin → sitting (lisätään 'g' loppuun). Numos Oy Jarkko Venna
Tietojen yhdistäminen kun yhteistä avainta ei ole lainkaan Perusstrategia Ajatellaan yhdistettävät rivit datassa dokumenteiksi ja käytetään dokumenttihakua tietojen yhdistämiseen. Toinen datoista täytyy valita perusdataksi josta toista dataa vastaavia dokumentteja etsitään Numos Oy Jarkko Venna
Dokumentin muuttaminen numeeriseksi vektoriksi vertailua varten • Lasketaan kunkin dokumentissa esiintyvän sanan esiintymiskertojen määrä. • Dokumentin vektori esityksessä dokumenttijoukon jokainen sana on vektorin solu ja sen arvona on sanojen esiintymiskertojen lukumäärä dokumentissa Esim. I went fishing to the lake. The lake was green. Numos Oy Jarkko Venna
TF-IDF-koodaus • Vektorikoodauksen perusversion ongelmana on että jokainen sana on yhtä tärkeä. Parempi tulos saadaan muuttamalla sanojen painotuksia. • TF-IDF: Term frequency – Inverse document frequency • Sana frekvenssi (tf) = Sanan esiintymiskertojen määrä dokumentissä • Käänteinen dokumentti frekvenssi (idf) = Dokumenttien kokonaismäärä jaettuna niiden dokumenttien määrällä jossa sana esiintyy. • Usein painoa muokataan käyttäen logaritmia esim. (Log(tf)+1)*log(idf) • Joissakin tilanteissa on järkevää jättää idf osio pois koodauksesta. Numos Oy Jarkko Venna
Dokumenttien välisen etäisyyden laskeminen • Yleensä käytetään cosini etäisyyttä Cos(θ)=A∙B/||A|| ||B|| • Cosinietäisyys jättää dokumentin pituuden huomioimatta etäisyyttä laskettaessa. Numos Oy Jarkko Venna
Laajennus kirjoitusvirheitä sisältävälle datalle • Jos data sisältää kirjoitus virheitä tai eri muotoja samoista sanoista. Voidaan tf-idf koodauksesta tehdä sumea versio. • Ideana on hakea merkkijonoetäisyyttä käyttäen hakudokumentin sanaa parhaiten perusdatasta löytyvä sana ja käyttää sitä koodausta tehtäessä sanan itsensä sijasta. • Etäisyyttä laskettaessa voidaan eri sanojen merkitys painottaa sen mukaan kuinka hyvin sanat vastaavat toisiaan. Numos Oy Jarkko Venna
Esim: Sumea TDF-IDF • Perus datassa sanat Kissa, kissoja, peruna • Haetaan sanalla kissat • Levensthein etäisyydet hakusanasta perussanoihin ovat • Kissa 1, Kissoja 3 ja peruna 6. • Sallitaan maksimissaan kaksi muutosta sanassa. • Paras sopivuus hakusanan kanssa on sanalla kissa ja sen painoksi etäisyyslaskennassa saataisiin (2-1+1)/(2+1)=2/3 Numos Oy Jarkko Venna
Huomioita • Sanastosta kannattaa poistaa hyvin yleiset sanat • Sanat kannattaa muuntaa perusmuotoonsa • Mikäli datasta on olemassa jotakin lisäinformaatiota ,esim. aikaleimoja, jonka avulla voidaan sulkea pois vaihtoehtoja niitä kannattaa käyttää. Joskus pelkää logiikkaa käyttäen voi yhdistää datat eikä monimutkaisempia menetelmiä tarvita • Kannattaa alottaa yksinkertaisemmalla menetelmällä ja edetä monimutkaisempiin mikäli yksinkertaisempi ei tuota tulosta. • Kannattaa edetä vaiheittain ja poistaa käsiteltävästä datasta ne rivit jotka on jo saatu yhdistettyä. Numos Oy Jarkko Venna