Tiedon louhinnan teoria (ja käytäntö) OUGF kevätseminaari 2004 Hannu Toivonen hannu.toivonen@cs.helsinki.fi 1
2 A 1 4 8 2 2 1 2 6 2 A 2 4 3 7 3 2 8 4 2 A 4 5 2 4 5 5 2 6 4 A 7 2 3 7 5 4 5 2 2 A 5 2 4 6 2 4 2 6 1 A 3 4 3 7 3 1 3 3 4 A 1 2 1 5 2 5 2 6 2 A 5 3 3 7 3 2 1 4 3 B 2 4 7 1 3 4 1 4 8 B 7 3 7 7 5 7 8 6 6 B 3 4 3 2 5 3 2 3 2 B 2 5 2 4 3 1 3 6 2 B 3 3 1 2 4 2 1 4 2 B 1 6 4 5 5 5 9 1 3 B 4 2 8 4 2 3 5 2 5 B 2 2 4 9 5 4 4 2 4
3 A 1 4 8 2 2 1 2 6 2 A 2 4 3 7 3 2 8 4 2 A 4 5 2 4 5 5 2 6 4 A 7 2 3 7 5 4 5 2 2 A 5 2 4 6 2 4 2 6 1 A 3 4 3 7 3 1 3 3 4 A 1 2 1 5 2 5 2 6 2 A 5 3 3 7 3 2 1 4 3 B 2 4 7 1 3 4 1 4 8 B 7 3 7 7 5 7 8 6 6 B 3 4 3 2 5 3 2 3 2 B 2 5 2 4 3 1 3 6 2 B 3 3 1 2 4 2 1 4 2 B 1 6 4 5 5 5 9 1 3 B 4 2 8 4 2 3 5 2 5 B 2 2 4 9 5 4 4 2 4
4 yksilön osa yksilön tyyppi perimästä luettua dataa sairas 1 4 8 2 2 1 2 6 2 sairas 2 4 3 7 3 2 8 4 2 sairas 4 5 2 4 5 5 2 6 4 sairas 7 2 3 7 5 4 5 2 2 sairas 5 2 4 6 2 4 2 6 1 sairas 3 4 3 7 3 1 3 3 4 sairas 1 2 1 5 2 5 2 6 2 sairas 5 3 3 7 3 2 1 4 3 verrokki 2 4 7 1 3 4 1 4 8 verrokki 7 3 7 7 5 7 8 6 6 verrokki 3 4 3 2 5 3 2 3 2 verrokki 2 5 2 4 3 1 3 6 2 verrokki 3 3 1 2 4 2 1 4 2 verrokki 1 6 4 5 5 5 9 1 3 verrokki 4 2 8 4 2 3 5 2 5 verrokki 2 2 4 9 5 4 4 2 4
Geenikartoitus 5 Sairaudelle altistavien geenien paikantaminen ihmisen perimässä Tautia aiheuttavien mekanismien tutkiminen ja ymmärtäminen Lääkkeiden suunnittelu Geenitestit mahdollistavat ennaltaehkäisevän ja räätälöidyn lääkityksen Tiedon louhinta Geenikartoitus perustuu perimästä luettavan datan analysointiin ja siitä löytyviin hahmoihin Menetelmän datan tuottamiseksi kehittyvät -> enemmän ja uudenlaista dataa -> uusia ongelmia ja mahdollisuuksia
Tiedon louhinta Tyypillinen tavoite: tuottaa datasta sellaisia havaintoja ja analyysejä, jotka auttavat tutkijaa ymmärtämään paremmin aineistoaan ja sen tuottanutta prosessia Uuden ja hyödyllisen tiedon päättelemistä datasta Mitä data kertoisi, jos siltä osaisi kysyä oikeat kysymykset? Tiedon louhinta työkaluna: tavoitteena tunnistaa datasta sellaisia ilmiöitä, joita voidaan hyödyntää edelleen komponentteina tarkemmassa mallinnuksessa tai analyysissä 6
Tiedon louhinta ja tilastotiede Ilmiöiden valinta käyttäjä ja kone yhdessä käyttäjä kuvailu ennustaminen selittäminen Monimutkaisuus 7
Tiedon louhinta ja tilastotiede Ilmiöiden valinta käyttäjä ja kone yhdessä käyttäjä Vis. DM DM perinteinen tilastotiede kuvailu ennustaminen selittäminen Monimutkaisuus 8
Tiedon louhinta ja OLAP Ilmiöiden valinta käyttäjä ja kone yhdessä käyttäjä DM DM Vis. OLAP perinteinen tilastotiede kuvailu ennustaminen selittäminen Monimutkaisuus 9
Data-analyysin tyypillisiä vaiheita Ilmiöiden valinta käyttäjä ja kone yhdessä 3. data mining 2. visualisointi 4. tilastollinen mallinnus käyttäjä 1. tunnusluvut kuvailu ennustaminen selittäminen Monimutkaisuus 10
Tyypillisiä tiedon louhintatehtäviä ennustaminen klusterointi poikkeusten havaitseminen toistuvien hahmojen etsintä Tiedon louhinta on laaja käsite, ei yksittäinen tekniikka 11
Ennustaminen sairas 1 4 8 2 2 1 2 6 2 sairas 2 4 3 7 3 2 8 4 2 sairas 4 5 2 4 5 5 2 6 4 sairas 7 2 3 7 5 4 5 2 2 sairas 5 2 4 6 2 4 2 6 1 sairas 3 4 3 7 3 1 3 3 4 sairas 1 2 1 5 2 5 2 6 2 sairas 5 3 3 7 3 2 1 4 3 verrokki 2 4 7 1 3 4 1 4 8 verrokki 7 3 7 7 5 7 8 6 6 verrokki 3 4 3 2 5 3 2 3 2 verrokki 2 5 2 4 3 1 3 6 2 verrokki 3 3 1 2 4 2 1 4 2 verrokki 1 6 4 5 5 5 9 1 3 verrokki 4 2 8 4 2 3 5 2 5 verrokki 2 2 4 9 5 4 4 2 4 3 7 sairas 12
Ennustaminen sairas 1 4 8 2 2 1 2 6 2 sairas 2 4 3 7 3 2 8 4 2 sairas 4 5 2 4 5 5 2 6 4 sairas 7 2 3 7 5 4 5 2 2 sairas 5 2 4 6 2 4 2 6 1 sairas 3 4 3 7 3 1 3 3 4 sairas 1 2 1 5 2 5 2 6 2 sairas 5 3 3 7 3 2 1 4 3 verrokki 2 4 7 1 3 4 1 4 8 verrokki 7 3 7 7 5 7 8 6 6 verrokki 3 4 3 2 5 3 2 3 2 verrokki 2 5 2 4 3 1 3 6 2 verrokki 3 3 1 2 4 2 1 4 2 verrokki 1 6 4 5 5 5 9 1 3 verrokki 4 2 8 4 2 3 5 2 5 verrokki 2 2 4 9 5 4 4 2 4 3 7 tai 2 6 sairas 13
Ennustaminen Opetusaineisto: joukko pareja (x i, f(x i )), i = 1,, n Tehtävä: opi funktio f (x i ) f(x i ) kohteena tapaukset i > n Mitä enemmän f:stä (tai f :stä) tiedetään ennalta, sen paremmin menetelmää voidaan ohjata Tyypilliset ratkaisut tuottavat yhden funktion f, joka on paras jonka menetelmä löysi Tuloksen testaaminen riippumattomalla testijoukolla, i = n+1,, n+m (aineisto jaetaan siis osiin, joiden koot n+m) Jos mallin valinta tehdään testijoukolla, pitää lopullinen malli testata vielä erillisellä validointijoukolla (aineisto osissa n+m+k) 14
Klusterointi 1 4 8 2 2 1 2 6 2 2 4 3 7 3 2 8 4 2 4 5 2 4 5 5 2 6 4 7 2 3 7 5 4 5 2 2 5 2 4 6 2 4 2 6 1 3 4 3 7 3 1 3 3 4 1 2 1 5 2 5 2 6 2 5 3 3 7 3 2 1 4 3 2 4 7 1 3 4 1 4 8 7 3 7 7 5 7 8 6 6 3 4 3 2 5 3 2 3 2 2 5 2 4 3 1 3 6 2 3 3 1 2 4 2 1 4 2 1 6 4 5 5 5 9 1 3 4 2 8 4 2 3 5 2 5 2 2 4 9 5 4 4 2 4 15
Klusterointi 1 4 8 2 2 1 2 6 2 2 4 3 7 3 2 8 4 2 4 5 2 4 5 5 2 6 4 7 2 3 7 5 4 5 2 2 5 2 4 6 2 4 2 6 1 3 4 3 7 3 1 3 3 4 1 2 1 5 2 5 2 6 2 5 3 3 7 3 2 1 4 3 2 4 7 1 3 4 1 4 8 7 3 7 7 5 7 8 6 6 3 4 3 2 5 3 2 3 2 2 5 2 4 3 1 3 6 2 3 3 1 2 4 2 1 4 2 1 6 4 5 5 5 9 1 3 4 2 8 4 2 3 5 2 5 2 2 4 9 5 4 4 2 4 16
Klusterointi 7 2 3 7 5 4 5 2 2 5 3 3 7 3 2 1 4 3 2 4 3 7 3 2 8 4 2 3 4 3 7 3 1 3 3 4 3 4 3 2 5 3 2 3 2 5 2 4 6 2 4 2 6 1 4 5 2 4 5 5 2 6 4 1 2 1 5 2 5 2 6 2 1 4 8 2 2 1 2 6 2 2 5 2 4 3 1 3 6 2 2 4 7 1 3 4 1 4 8 7 3 7 7 5 7 8 6 6 3 3 1 2 4 2 1 4 2 1 6 4 5 5 5 9 1 3 4 2 8 4 2 3 5 2 5 2 2 4 9 5 4 4 2 4 17
Klusterointi 7 2 3 7 5 4 5 2 2 5 3 3 7 3 2 1 4 3 2 4 3 7 3 2 8 4 2 3 4 3 7 3 1 3 3 4 3 4 3 2 5 3 2 3 2 5 2 4 6 2 4 2 6 1 4 5 2 4 5 5 2 6 4 1 2 1 5 2 5 2 6 2 1 4 8 2 2 1 2 6 2 2 5 2 4 3 1 3 6 2 2 4 7 1 3 4 1 4 8 7 3 7 7 5 7 8 6 6 3 3 1 2 4 2 1 4 2 1 6 4 5 5 5 9 1 3 4 2 8 4 2 3 5 2 5 2 2 4 9 5 4 4 2 4 18
Klusterointi Syöte: joukko datapisteitä x i Tulos esim: parit (x i, g(x i )) kaikilla i, missä g 1, 2,, k kertoo mihin k:sta klusterista kukin piste kuuluu pisteet kussakin klusterissa ovat keskenään mahdollisimman samankaltaisia eri klusterit ovat keskenään mahdollisimman erilaisia Paljon erilaisia variaatiota k annettu vai ei, hierarkkinen klusterointi, sumea klusterointi, Tavoitteen täsmällinen määritteleminen, esim. minimoidaan i dist(x i, mean(g(x i )) 2, missä dist(x, y) on pisteiden x, y välinen etäisyys ja mean(j) on klusteriin j kuuluvien pisteiden keskiarvo 19
Toistuvat hahmot sairas 1 4 8 2 2 1 2 6 2 sairas 2 4 3 7 3 2 8 4 2 sairas 4 5 2 4 5 5 2 6 4 sairas 7 2 3 7 5 4 5 2 2 sairas 5 2 4 6 2 4 2 6 1 sairas 3 4 3 7 3 1 3 3 4 sairas 1 2 1 5 2 5 2 6 2 sairas 5 3 3 7 3 2 1 4 3 verrokki 2 4 7 1 3 4 1 4 8 verrokki 7 3 7 7 5 7 8 6 6 verrokki 3 4 3 2 5 3 2 3 2 verrokki 2 5 2 4 3 1 3 6 2 verrokki 3 3 1 2 4 2 1 4 2 verrokki 1 6 4 5 5 5 9 1 3 verrokki 4 2 8 4 2 3 5 2 5 verrokki 2 2 4 9 5 4 4 2 4 20
Toistuvat hahmot sairas 1 4 8 2 2 1 2 6 2 sairas 2 4 3 7 3 2 8 4 2 sairas 4 5 2 4 5 5 2 6 4 sairas 7 2 3 7 5 4 5 2 2 sairas 5 2 4 6 2 4 2 6 1 sairas 3 4 3 7 3 1 3 3 4 sairas 1 2 1 5 2 5 2 6 2 sairas 5 3 3 7 3 2 1 4 3 verrokki 2 4 7 1 3 4 1 4 8 verrokki 7 3 7 7 5 7 8 6 6 verrokki 3 4 3 2 5 3 2 3 2 verrokki 2 5 2 4 3 1 3 6 2 verrokki 3 3 1 2 4 2 1 4 2 verrokki 1 6 4 5 5 5 9 1 3 verrokki 4 2 8 4 2 3 5 2 5 verrokki 2 2 4 9 5 4 4 2 4 -hahmo 1: (3)(4) 3 (7)(3)(2) 21
Toistuvat hahmot sairas 1 4 8 2 2 1 2 6 2 sairas 2 4 3 7 3 2 8 4 2 sairas 4 5 2 4 5 5 2 6 4 sairas 7 2 3 7 5 4 5 2 2 sairas 5 2 4 6 2 4 2 6 1 sairas 3 4 3 7 3 1 3 3 4 sairas 1 2 1 5 2 5 2 6 2 sairas 5 3 3 7 3 2 1 4 3 verrokki 2 4 7 1 3 4 1 4 8 verrokki 7 3 7 7 5 7 8 6 6 verrokki 3 4 3 2 5 3 2 3 2 verrokki 2 5 2 4 3 1 3 6 2 verrokki 3 3 1 2 4 2 1 4 2 verrokki 1 6 4 5 5 5 9 1 3 verrokki 4 2 8 4 2 3 5 2 5 verrokki 2 2 4 9 5 4 4 2 4 -hahmo 1: (3)(4) 3 (7)(3)(2) -hahmo 2: (5)(2) 6 (2) 22
Toistuvien hahmojen etsintä Tehtävän kuvaus: Syöte: aineisto A joukko P aineistossa mahdollisesti olevia hahmoja minimiyleisyys k Tulos: kaikki sellaiset joukon P hahmot p, jotka esiintyvät vähintään k kertaa annetussa aineistossa A Tehtävän analyysi, esim.: jos joukon P hahmoilla on yleisyyshierarkia, toistuvien hahmojen haku voidaan tehdä tehokkaasti Algoritmit: yleinen ratkaisumalli, joka on sovitettavissa erilaisiin erikoistapauksiin 23
Toistuvia hahmoja Ostoskorianalyysi Jos vaippoja niin olutta (todennäköisyys 56 %, frekvenssi 12 %) Kurssi-ilmottautumiset Jos tietoliikenne ja C-ohjelmointi niin ei gradua Tekstidokumenttien analysointi Jos innovative ja Microsoft niin <piste> sanojen välissä Geenikartoitus Jos geneettinen hahmo 4 3 7 3 niin sairas Ostoskorianalyysi on sovellusriippumaton tekniikka 24
Toistuvat hahmot työkaluna Yksinkertaiset hahmot ovat helposti ymmärrettäviä Etsintä on tehokasta Tarkasteltavat hahmotyypit voidaan räätälöidä sovelluksen mukaan Toistuvia hahmoja voidaan käyttää monimutkaisempien mallien rakennuspalikoina (mm. ennustuksessa tai klusteroinnissa) Hyvin harvinaiset hahmot ovat harvoin mielenkiintoisia 25
Toistuvien hahmojen etsintä Mahdollisia hahmoja voi olla valtavasti Jos perimästä tarkastellaan vaikkapa 100 kohtaa (attribuuttia), jossa kussakin esiintyy kahta alleelia (arvoa), niin erilaisia yhdistelmiä on yli 1200000000000000000000000000000. Jos yhdistelmiä tutkitaan miljoona sekunnissa, niin aikaa kaikkien tutkimiseen kuluu 40000000000000000 vuotta. Kuitenkin vain murto-osa yhdistelmistä toistuu edes kaksi kertaa Yksi tiedon louhinnan ydinalueita on ollut tehokkaiden menetelmien kehittäminen toistuvien hahmojen etsintään 26
Tiedon louhinta tieteenalana Tutkimuskohteita: Louhinta-algoritmien suunnittelu ja analyysi miten annettu data-analyysitehtävä ratkaistaan? Tiedon louhinnan teoria millaisia tehtävätyyppejä ja millä edellytyksillä tietyllä algoritmilla voidaan ratkaista? millaisia ominaisuuksia eri tehtävätyypeillä on? miten tulosten laatua voidaan arvioida? Tehtävätyyppien muotoilu, hyvät kysymykset millaiset data-analyysitehtävät ovat yleiskäyttöisiä? Tiedon louhintaprosessi mitkä ovat ne toimintatavat, joilla uudelle ongelmalle löydetään hyvät kysymykset ja niille hyvät ratkaisut? 27
Menetelmäkehityksen tavoitteita Tavoitteita tiedon louhintamenetelmille automaattisuus: laajan etsintäavaruuden läpikäynti korkean tason kieli: ymmärrettävät tulokset hyödylliset tulokset: uutta, hyödynnettävää tulosteen tarkkuus: hyvä ja tarvittaessa arvioitavissa tehokkuus: analyysiajat kohtuullisia ja ennakoitavissa 28
Tiedon louhijan pitää tietää (1/3) mitä hän louhii Millaista data on? Miksi ja miten se on tuotettu? Miten se on kerätty? Miten sitä on jo käsitelty? Miksi dataa analysoidaan? Mihin tiedon louhinnalla pyritään? Minkä tyyppisistä tuloksista olisi hyötyä? Assosiaatiosäännöistä, klusteroinnista, luokittelijasta, trendeistä, poikkeuksista - vai jostain muuta? Millaisia hahmoja, sääntöjä tai piirteitä datasta voi ylipäätään etsiä? 29
Tiedon louhijan pitää tietää (2/3) miten louhia Mikä on louhintatehtävän abstrakti kuvaus? Mitkä menetelmät soveltuvat ongelmaan? Mitkä menetelmät ja niiden muunnelmat sopivat tavoitteisiin? Onko tehtävään valmiita työkaluja? Jos ei, miten muokata työkalua tai ongelmaa? 30
Tiedon louhijan pitää tietää (3/3) tekniikoiden tärkeimmät ominaisuudet Miksi työkalu (käytetty menetelmä ja käytetty ohjelma) tuotti tietyt tulokset? Millä perusteilla se valitsi mahdollisten tulosten joukosta juuri kyseiset? Mitkä ovat työkalun rajoitukset? Millaisia oletuksia työkalu tekee? Takaako se parhaan tuloksen löytymisen vai likimäärin parhaan? Kuinka herkkä se on käytetyille parametreille? Kertooko se myös muista lähes yhtä hyvistä (ja mahdollisesti täysin erilaisista) tuloksista? 31
Tekniikoiden eroja: etsittävän ilmiön rajaus Etsiikö menetelmä vain tiettyyn tai tiettyihin attribuutteihin liittyviä hahmoja? assosiaatiosäännöt, toistuvat ilmiöt klusterointi ennustaminen tilastollisen mallin sovitus löysä rajaus mielivaltaisten attribuuttien välisiä suhteita kohdeattribuutti on kiinnitettu tarkka rajaus kohde- ja selittävät muuttujat kiinnitetty 32
Tekniikoiden eroja: hahmojen ilmaisuvoima Kuinka monimutkaisia ilmiöitä hahmot voivat kuvata? assosiaatiosäännöt, toistuvat ilmiöt klusterointi ennustaminen tilastollisen mallin sovitus yksinkertaisia kuvaa vain asioiden liittymistä yhteen monimutkaisempia sääntöjä, puita monimutkaisia mielivaltaisia käyttäjän laatimia malleja 33
Tekniikoiden eroja: tuloksen koko Tuottaako menetelmä tuloksena yhden hahmon vai monta? assosiaatiosäännöt, toistuvat ilmiöt klusterointi ennustaminen tilastollisen mallin sovitus monta paljon, jossakin "paremmuusjärjestyksessä" tyypillisesti yksi tai muutamia vaihtoehtoja vähän paras sovitus 34
Tekniikoiden eroja: yhteenveto paljon yksinkertaisia tuloksia assosiaatiosäännöt, toistuvat ilmiöt klusterointi luokittelu, regressio tilastollisen mallin sovitus 35 tarkka rajaus, voimakkaat hahmot
9 askelta epäonnistumiseen Näin varmistat louhintaprojektin epäonnistumisen [D. Pyle, DB2 Magazine, 2004] 1. Ryhdy välittömästi louhintaan. Älä tuhlaa aikaa datan ja menetelmien valintaan tai tarpeiden selvittämiseen. 2. Muotoile ongelma datalähtöisesti. Muotoile tavoite sitten tekemiesi havaintojen mukaiseksi. 3. Keskity ilmeisimpään tapaan analysoida dataa. Luota ohjelmistosi tarjoamiin menetelmiin ja tarkkuusmittareihin. 4. Luota omaan harkintakykyysi, äläkä anna asiakkaiden johtaa harhaan. 36
9 askelta epäonnistumiseen 5. Etsi paras algoritmi. Tiedon louhinta on oleellisesti parhaan algoritmin etsimistä annetulle datalle. 6. Luota omaan muistiisi. Älä tuhlaa aikaa prosessin vaiheiden dokumentointiin, kyllä ne muistaa sitten myöhemmin. 7. Oma näkemys on tärkeämpi kuin vakioidut käytännöt, jotka ovat vain noviiseja varten. Jokainen tapaus ja data on yksilöllinen. 8. Minimoi tiedon louhijan ja asiakkaan vuorovaikutus. Hyvä louhija löytää työkaluillaan kaikki tärkeät, hyödylliset, yllättävät arvokkaat ilmiöt ilman asiakkaan opastusta. 9. Minimoi datan esikäsittely. Mielenkiintoisin osa tiedon louhintaa on algoritmien ja parametrien virittäminen. Sitä paitsi esiprosessointiin kuluu paljon aikaa. 37
Yhteenveto Tiedon louhinta ei toimi nappia painamalla Tiedon louhinta on prosessi (datan käsittely, analyysi, tulosten tulkinta)* Onnistunut tiedon louhinta edellyttää sovellusalueen, datan ja menetelmien tuntemista, käytännössä siis eri asioiden asiantuntijoiden yhteistyötä 38