276 Attribuutin valinta Puuhun valittavan attribuutin tulisi parantaa esimerkkien jakoa luokka-attribuutin arvon ennustamiseksi Parhaimmillaan attribuutti jakaisi esimerkit joukkoihin, joissa on vain yhden luokan edustajia Heikoimmillaan attribuutti ei muuta eri luokkien edustajien suhteellisia osuuksia juuri lainkaan Attribuuttien hyödyllisyyden mittaamiseen voidaan käyttää mm. sen antaman informaation arvoa eli Shannon entropiaa Informaatioteoriassa informaatiosisältöä mitataan bitein Yksi bitti riittää kyllä/ei-kysymykseen (kolikonheittoon) vastaamiseksi 277 Yleisesti, kun mahdollisilla vastauksilla v i on todennäköisyydet P(v i ), niin H(P(v 1 ),, P(v n )) = i=1,,n -P(v i ) log 2 P(v i ) Esimerkiksi H(½, ½) = 2(-½ log 2 (½)) = 1 bitti Attribuuttien arvottamiseen sovellettuna haluamme laskea luokka-attribuutin C arvojakaumaan P(C) kohdistuvan muutoksen, kun opetusaineisto S jaetaan attribuutin a mukaan osajoukkoihin H S (P(C)) Gain S (P(C) a), missä Gain S (P(C) a) = Si ( S i / S ) H Si (P(C)), kun a jakaa S:n osiin S i
278 Olkoon alkuperäisessä aineistossa S14 omenaaja 6 päärynää Täten H S (P(C)) = H(0.7, 0.3) 0.7 0.515 + 0.3 1.737 0.881 Jos esimerkiksi attribuutti a jakaa aineiston s.e. S 1 = { 7 omenaa, 3 päärynää }, S 2 = { 7 omenaa } ja S 3 = { 3 päärynää } niin Gain S (P(C) a) = Si ( S i / S ) H Si (P(C)) (10/20) H(0.7, 0.3) + 0 + 0 ½ 0.881 0.441 279 Oppimisalgoritmin testaaminen Jaa esimerkkiaineisto opetusaineistoksi ja testiaineistoksi Sovella oppimisalgoritmia opetusaineistoon, tuota hypoteesi h Testaa kuinka suuren osan testiaineiston esimerkeistä h luokittelee oikein Em. askelia toistetaan eri opetusaineiston koolla kullakin kerralla vetäen opetusesimerkit satunnaisesti Tämän toiminnon kuvaaja on oppimiskäyrä (learning curve) Vaihtoehtoinen testitapa on ristiinvalidointi (cross-validation)
280 Kohina ja ylisovittaminen Jos kaksi esimerkkiä ovat identtiset attribuuttiarvoiltaan, mutta poikkeavat luokka-arvoltaan, niin konsistenttia päätöspuuta ei ole olemassa Tällöin ennustetaan lehteen päätyvien esimerkkien yleisintä luokkaa tai palautetaan tieto esimerkkien suhteellisista luokkafrekvensseistä Usein kuitenkin voidaan löytää konsistentti päätöspuu vaikka tärkeää tietoa puuttuisikin esimerkeistä Oppimisalgoritmi voi käyttää irrelevantteja attribuutteja esimerkkien erottamiseen toisistaan, vaikka niiden arvot eivät vaikutakaan tuntemattomaan kohdefunktioon 281 Jos esim. nopanheiton silmälukua pyritän ennustamaan sen perusteella minä päivänä ja missä kuussa heitto tapahtui ja minkä värinen noppa on, niin kunhan kaksi esimerkkiä eivät ole attribuuttiarvoiltaan identtiset, täsmällinen hypoteesi voidaan löytää Löydetty päätöspuu on tietysti aivan väärä hypoteesi Mitä useampia attribuutteja on, sitä todennäköisemmin konsistentti hypoteesi löydetään Oikea puu olisi yksisolmuinen ennustaja, jossa kunkin silmäluvun edustajien frekvenssi on 1/6 Tämä on ylisovittamista (overfitting), joka vaivaa kaikkia oppimismenetelmiä ja kohdefunktioita, ei pelkästään satunnaisia käsitteitä
282 Päätöspuun karsinta Yksinkertainen tapa vähentää puun ylisovittumista on karsia (prune) sitä Tarkoituksena on estää jakamasta aineistoa sellaisten attribuuttien, jotka eivät selkeästi ole relevantteja, perusteella Jos aineisto jaetaan irrelevantin attribuutin perusteella, niin muodostuvissa esimerkkien osajoukoissa on suunnilleen sama luokkajakauma kuin alkuperäisessä aineistossa Tällöin informaation lisäys on lähellä nollaa Kuinka suurta informaation lisäystä meidän tulisi edellyttää ennen attribuutin hyväksymistä puuhun? 283 Tilastollisella merkitsevyystestillä testataan kuinka paljon datan antama evidenssi poikkeaa tehdystä nolla-hypoteesistä: mitään säännöllisyyttä ei ole havaittavissa Jos poikkeama on tilastollisesti epätodennäköinen (yleensä alle 5% todennäköisyys), niin se on vahva evidenssi sen puolesta, että datassa on säännöllisyyttä Todennäköisyydet saadaan standardijakaumista, jotka kertovat satunnaisotannalla odotettavissa olevasta poikkeamasta Nolla-hypoteesi: attribuutti on irrelevantti ja sen informaation lisäys on nolla (äärettömällä aineistolla) On laskettava tn., että nolla-hypoteesin vallitessa v:n esimerkin aineiston poikkeama positiivisten ja negatiivisten esimerkkien odotusarvosta olisi sama kuin opetusaineistosta havaittu
284 Olkoot positiivisten ja negatiivisten esimerkkien lukumäärät osajoukoissa s i ja g i Niiden odotusarvot, kun attribuutti tosiaan on irrelevantti, ovat ŝ i = s (s i + g i )/(s + g) ĝ i = g (s i + g i )/(s + g) (s ja g ovat opetusaineiston positiivisten ja negatiivisten esimerkkien kokonaismäärät) Poikkeamaa voidaan mitata mm. seuraavasti D = i=1,,v (s i - ŝ i ) 2 /ŝ i + (g i - ĝ i ) 2 /ĝ i Nolla-hypoteesin vallitessa D on jakautunut χ 2 -jakauman mukaisesti (v-1):llä vapausasteella Tämän jakauman arvot saadaan standarditaulukoista, joten attribuutin irrelevanttius voidaan arvioida 285 Edellä esitetty menetelmä on χ 2 -esikarsinta Karsinta sallii kohinaa opetusesimerkeissä ja pienentää päätöspuita Esikarsintaa yleisempiä karsintamenetelmiä ovat jälkikarsinnat, joissa ensin muodostetaan opetusaineiston kanssa niin yhteensopiva puu kuin mahdollista ja sen jälkeen siitä poistetaan ne alipuut, jotka ovat todennäköisesti kohinan aiheuttamia Ristiinvalidoinnissa aineisto jaetaan k osaan, joista vuorollaan kutakin käytetään testiaineistona muilla kasvatetulle puulle Täten voidaan arvioida puun yleistyskykyä (vs. ylisovittumista)
286 Käytännössä päätöspuiden oppimisen on vastattava myös seuraaviin kysymyksiin Puuttuvat attribuuttiarvot: opittaessa ja luokiteltaessa Moniarvoiset diskreetit muuttujat: ryhmittely tai rankaiseminen Numeeriset attribuutit: arvoalueen jako intervalleihin Jatkuva-arvoinen ennustaminen Päätöspuut ovat laajasti käytössä ja monia hyviä toteutuksia on tarjolla (ilmaiseksikin) Päätöspuut täyttävät ymmärrettävyyden vaatimuksen, joka on amerikkalaiseen lakiinkin kirjattu, toisin kuin esim. neuroverkot 287 Hypoteesikokoelmien oppiminen Valitaankin kokoelma (ensemble) hypoteesejä, joiden ennusteet yhdistetään Tuotetaan esimerkiksi sata erilaista päätöspuuta saman opetusaineiston perusteella ja annetaan niiden äänestää uuden tapauksen luokasta Jos kokoelmassa on 5 hypoteesiä, jotka äänestävät uuden tapauksen luokittelusta, niin väärä luokittelu edellyttää ainakin kolmen hypoteesin virheluokittelua Yleisesti ottaen kolmen eri hypoteesin erehtyminen samalla tapauksella on harvinaisempaa kuin yhden ainoan hypoteesin
288 Kokoelman hypoteesit eivät ole toisistaan riippumattomia, mutta niiden poikkeamat toisistaan varmistavat, etteivät opetusaineiston virheet voi kopioitua kuhunkin hypoteesiin Hypoteesikokoelman käyttö kasvattaa hypoteesien ilmaisuvoimaa ilman laskennallisen vaativuuden räjähtämistä Painotetussa opetusaineistossa kuhunkin esimerkkiin liittyy paino w j 0, joka ilmaisee sen merkittävyyttä Oppimisen tehostaminen (boosting) [Schapire 1990, Freund & Schapire 1996] on yleisin hypoteesikokoelmien oppimismenetelmä Opitaan ensin hypoteesi h 1 alkuperäisestä opetusjoukosta, kun kaikkien esimerkkien paino on w j = 1 289 h 1 luokittelee osan esimerkeistä oikein ja osan väärin Haluaisimme seuraavan hypoteesin luokittelevat paremmin ne esimerkit, joilla h 1 erehtyi Oikein luokiteltujen esimerkkien painoa vähennetään ja väärin luokiteltujen painoa kasvatetaan Näin muutetun opetusaineiston perusteella tuotetaan hypoteesi h 2 Hypoteesien oppimista jatketaan samaan tapaan kunnes niitä on ennalta kiinnitetyn parametrin M kertoma lukumäärä Lopullinen kokoelmahypoteesi äänestää hypoteesiensä kesken painotetusti niiden opetusjoukolla saavuttaman tarkkuuden suhteessa
290 Algoritmi AdaBoost(S, A, M) syöte: S opetusjoukko (x 1, y 1 ),, (x n, y n ), A oppimisalgoritmi, M kokonaisluku, kokoelman koko w (1/n,, 1/n); for m = 1 to M do h[m] A(S, w); virhe 0; for j = 1 to n do if h[m](x j ) y j then virhe virhe + w[j]; for j = 1 to n do if h[m](x j ) = y j then w[j] w[j] virhe/(1- virhe); w Normalisoi(w); z[m] log (1-virhe)/virhe; % z[m] on hypoteesin m paino return PainotettuEnemmistö(h, z); 291 AdaBoost-algoritmista myönnettiin sen kehittäjille Gödel-palkinto vuonna 2003 Heikon oppijan painotettu virhe opetusaineistolla on vain vähän satunnaista arvausta parempi AdaBoost todistettavasti tehostaa heikon oppijan luokittelemaan hypoteesien kokoelmana aineiston virheettömästi (kunhan M on riittävän suuri) Usein tehostettu hypoteesien luokka on yksitasoiset päätöspuut (decision stumps) Hypoteesikokoelman koon nostaminen pudottaa (ainakin alkuun) sekä opetus- että testivirhettä, mutta testivirheen pieneneminen voi jatkua vielä kun opetusvirhe on pudonnut nollaan
292 Laskennallinen oppimisteoria Computational Learning Theory (COLT) [Valiant 1984] Perusta: todennäköisesti suunnilleen oikea oppiminen (probably approximately correct, PAC) Hypoteesi, joka on konsistentti riittävän suuren opetusaineiston kanssa on selkeästi virheellinen vain hyvin pienellä todennäköisyydellä Opetus- ja testiaineisto oletetaan vedettävän samasta populaatiosta samalla todennäköisyysjakaumalla Ilman tätä oletusta oppiminen olisi jokseenkin mahdotonta 293 Olk. X tapausavaruus, josta esimerkit vedetään tn.jakaumalla D Hon mahdollisten hypoteesien luokka ja n on opetusesimerkkien lukumäärä Oletetaan (nyt), että kohdefunktio f kuuluu luokkaan H Nyt hypoteesin h virhe f:n suhteen annettuna D on tn., että h:n antama luokitus poikkeaa oikeasta luokituksesta mv. esimerkillä P(h(x) f(x) x vedetty jakaumasta D) Jos virhe(h) ε, missä ε on pieni vakio, niin h on f:n ε- approksimaatio Tavoitteemme on osoittaa, että n:n opetusesimerkin jälkeen kaikki konsistentit hypoteesit ovat suurella todennäköisyydellä ε-approksimaatioita f:lle
294 Tarkastellaan hypoteesia h b, joka ei ole ε-approksimaatio kohdefunktiolle Tällöin virhe(h b ) > ε, joten todennäköisyys, että h b on konsistentti mv. esimerkin kanssa on korkeintaan 1 - ε Täten n:n esimerkin opetusjoukolla pätee, että h b on yhtäpitävä n esimerkin kanssa korkeintaan todennäköisyydellä (1 - ε) n Todennäköisyys, että hypoteesiluokassa H on yksikin tällainen hypoteesi on korkeintaan H (1- ε) n Haluaisimme rajoittaa tällaisen huonon hypoteesin esiintymisen todennäköisyyden pieneksi, alle δ:n H (1- ε) n δ 295 Tällöin n (1/-ln(1 - ε))(ln H + ln(1/δ)) Koska ln(1 + α) < α, niin yllä oleva pätee varmasti kun n (1/ε)(ln H + ln(1/δ)) Jos oppimisalgoritmille siis palauttaa hypoteesin, joka on konsistentti näin monen esimerkin kanssa, niin vähintään todennäköisyydellä 1 - δ sen virhe on korkeintaan ε Otosvaativuus (sample complexity) on ε-approksimaation oppimiseksi tarvittavien esimerkkien lukumäärä ilmaistuna parametrien ε ja δ suhteen
296 Päätöslistojen oppiminen Päätöslista (decision list) koostuu sääntöjen järjestetystä joukosta, jossa kunkin säännön ehto-osa on literaalien konjunktio ja johtopäätös kertoo palautettavan arvon Sääntöjä käydään läpi järjestyksessä Jos säännön ehto toteutuu, niin listan palauttama arvo on ko. säännön johtopäätös Muuten edetään järjestyksessä seuraavaan sääntöön Asiakkaita = Jokunen Ei Täysi & Pe / La Ei Vaihda Kyllä Kyllä Valitse Valitse 297 Päätöslista siis muistuttaa päätöspuuta, mutta tietorakenne on yksinkertaisempi Sen sijaan yksittäiset testit ovat monimutkaisempia kuin päätöspuun solmuissa Jos sääntöjen ehto-osien testien lukumäärää ei rajoiteta, niin päätöslistoin voidaan esittää kaikki Boolen funktiot Kun testin literaalien lukumäärä rajoitetaan korkeintaan k literaaliin (k-dl), niin päätöslistoja voidaan oppia pienestä esimerkkien määrästä Rajoitetut päätöslistat sisältävät osanaan myös syvyysrajoitetut päätöspuut Merk. k-dl(n) on k-päätöslistat yli n:n Boolen muuttujan
298 Merk. Conj(n, k) on korkeintaan k:n literaalin konjunktiot, kun totuusarvoisia muuttujia on n kappaletta Tällaisia konjunktioita on k 2n k Conj( n, k) = = O( n ) i= 1 i Päätöslistassa jokainen konjunktio voi olla yhden säännön ehtoosa tai puuttua listasta kokonaan Ensimmäisessä tapauksessa konjunktioon voi liittyä jompikumpi kahdesta luokka-vaihtoehdosta Erilaisia sääntöjen ehto-osien joukkoja on siis kork. 3 Conj(n,k) Koska säännöt voivat olla missä tahansa järjestyksessä, niin k-dl(n) 3 Conj(n,k) Conj(n,k)! 299 Yhdistämällä edelliset arviot: k-dl(n) 2 O(nk log 2 (n k )) Kun tämä arvio sijoitetaan edellä olleeseen otosvaativuuden kaavaan, saadaan n (1/ε)( O(n k log 2 (n k )) + ln(1/δ)) k-dl-funktio on siis PAC-opittavissa (n:n suhteen) polynomisesta esimerkkien lukumäärästä Täten mikä tahansa tehokas algoritmi, joka palauttaa konsistentin päätöslistan annettuna riittävä määrä esimerkkejä on PACalgoritmi k-päätöslistoille Seuraava ahne algoritmi palauttaa konsistentin päätöslistan (jos sellainen on olemassa)
300 Algoritmi DL-oppija(S) syöte: S opetusjoukko tulos: päätöslista tai epäonnistuminen 1. if S = Ø then return triviaalilista "Ei"; 2. Valitse testi t, jonka toteuttavat esimerkit S t Ø ovat kaikki positiivisia tai negatiivisia; 3. if tällaista testiä ei ole then fail; 4. if kaikki esimerkit S t ovat positiivisia then p ''Kyllä'' else p ''Ei''; 5. L DL-oppija(S\S t ); 6. return päätöslista, jonka kärjessä on testi t ja sen johtopäätöksenä p sekä listan loppuna L;