Laskennallinen data-analyysi II Ella Bingham, ella.bingham@cs.helsinki.fi Kevät 2008 Muuttujien valinta Kalvot perustuvat Saara Hyvösen kalvoihin 2007 Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto
Korkeiden ulottuvuuksien kirous Opitaan yksi- ja kaksiulotteisen tasajakautuneen datan jakauma näytteistä jakamalla akselit 100:n osaan ja laskemalla osumat kussakin laatikossa: n=100000, 1D n=100000, 2D Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 1
keskimääräinen neliöllinen etäisyys tasajakaumasta näytteiden määrä n yksiulotteinen kaksiulotteinen 100 1.06 10 0 1.01 10 2 1000 1.09 10 1 1.03 10 1 10000 1.23 10 2 1.00 10 0 100000 1.17 10 3 1.03 10 1 1000000 9.45 10 5 1.02 10 2 10000000 1.09 10 5 1.02 10 3 Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 2
Korkeiden ulottuvuuksien kirous korkeaulotteisilla avaruuksilla monia epäintuitiivisia ominaisuuksia edellisessä esimerkissä, jos halutaan saavuttaa sama estimointitarkkuus kahdessa kuin yhdessä ulottuvuudessa, tarvitaan satakertainen määrä näytevektoreita oppimiseen jos lisätään dimensioiden määrää, niin samaan tarkkuuteen tarvittavien näytevektorien määrä kasvaa eksponentiaalisesti! Korkeaulotteinen data aiheuttaa ongelmia! Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 3
Halutaan siis vähentää dimensioita, mutta miten? Kaksi peruslähestymistapaa: heitetään muuttujia pois, tai muodostetaan uusia muuttujia. Tarkemmin sanoen, voidaan joko muodostaa uusia muuttujia vain datan perusteella, oppimistehtävästä riippumatta (filter), kuten SVD:ssä ja PCA:ssa teimme, tai valita uudet muuttujat oppimistehtävän avulla (wrapper), kuten teemme tänään luennon loppuosassa. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 4
(Lineaariset) piilomuuttujamallit (Kertausta) Yksinkertaisimmillaan voidaan ajatella, että m n datamatriisi A, missä rivit ovat pisteitä ja sarakkeet ovat muuttujia, esitetään k:n piilomuuttujan avulla kahden matriisin tulona: A m n = D m k V k n, missä matriisin V rivit ovat latentit muuttujat ja matriisi D antaa datapisteet latenttien muuttujien avulla lausuttuna. Siis V:n rivit = uudet kantavektorit, ja D = pisteiden koordinaatit uudessa kannassa. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 5
Piilomuuttujat = uudet kantavektorit voivat olla vaikkapa (oikeanpuoleiset) singulaarivektorit, tai pääkomponentit. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 6
SVD/PCA esikäsittelynä Ilmaistaan datamatriisi A (rivit pisteitä, sarakkeet muuttujia) uudessa singulaarivektorien tai pääkomponenttien V määrittämässä kannassa: A m n = D m k V k n. Nyt matriisin D rivit ovat pisteiden koordinaatit uudessa kannassa: siis kohdellaan näitä pisteinä, ja klusteroidaan/luokitellaan niitä! Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 7
Esimerkki: spatiaalisen datan analysointi Data: Suomen murteet, noin 17000 sanaa, 500 kuntaa. Kunta-sana-matriisi A: A(j, i) = { 1 jos sana i esiintyy kunnassa j 0 muutoin. lasketaan SVD käyttäen 30 singulaarivektoria (k=30) A k = U k S k Vk T, Singulaarivektorit V k antavat uuden kannan, ja datan koordinaatit uudessa kannassa on D = U k S k. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 8
Jokainen matriisin D rivi vastaa kuntaa, eli klusteroidaan siis rivit (esim. k-means). ks. kuva Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 9
Esimerkki jossa PCA ei toimi: ilmakehädata Data: 1500 päivää, kymmeniä muuttujia (lämpötila, tuulen suunta ja nopeus, UV-säteilyn määrä, hiilidioksidikonsentraatio etc.) Visualisointi esim. 60-ulotteisessa avaruudessa on haastavaa! Mielenkiinnon kohteena oleva ilmiö: Pienhiukkasia joko muodostuu, tai sitten ei. Meillä on luokittelutehtävä: erota spontaanin hiukkasmuodostuksen päivät sellaisista, jolloin kyseistä ilmiötä ei havaita. Tässä pääkomponentit eivät ole kovin hyviä. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 10
Muuttujien valinta luokittelutehtävässä Pitäisi lˆytää sellainen joukko muuttujia, että data luokittuu hyvin (joko opetusjoukon määrittämiin luokkiin, tai ohjaamattomasti klustereihin eli ryppäisiin) Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 11
Askeltavat menetelmät Eteenpäin askeltava muuttujanvalinta (forward stepwise selection of variables) - valitaan muuttujat ahneesti: Lasketaan luokitteluvirhe jokaiselle muuttujalle erikseen. Valitaan se muuttuja, jolla luokitteluvirhe pienin. Tämän jälkeen joka askeleella lisätään se muuttuja, joka yhdessä jo valittujen muuttujien kanssa antaa pienimmän luokitteluvirheen. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 12
Ilmakehäesimerkissä valitut muuttujat: Muuttujavalinnan tulokset kahdelle erilliselle valintatapahtumalla sekä luokitteluvirhe (%). Alussa valitut muuttujat samat, sen jälkeen vaihtelua. Virhekään ei enää pienene samaa vauhtia. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 13
Ilmakehäesimerkissä valitut muuttujat: Set 1 Set 2 variable error variable error RH high mean 17.8 RH high mean 17.5 logcs mean 12.1 logcs mean 12.4 T high std 12.3 SO 2 high std 12.0 logcs std 11.8 momflux std 11.1 CO 2 high mean 11.1 O 3 high std 11.0 O 3 high std 10.8 SWS std 10.7 RH high std 10.6 O 3 high mean 10.7 WS high mean 10.5 SO 2 high mean 10.8 Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 14
Ilmakehäesimerkissä valitut muuttujat: Jos tehdään ensin PCA, ja askelletaan sitten, on virhe tämännäköinen: #of P C 1 2 3 4 5 6 7 8 9 10 Error 0.28 0.23 0.18 0.14 0.13 0.13 0.13 0.13 0.12 0.11 Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 15
Askeltavat menetelmät Huomaa, että askeltava menetelmä ei ole sidottu luokittelutehtäviin; se soveltuu mihin tahansa ohjatun oppimisen tehtävään, esimerkiksi regressioon. Tarvitaan vain virhe-estimaatti. Yleisesti ottaen eteenpäin askeltava muuttujanvalinta (forward stepwise selection of variables) toimii valitsemalla muuttujat ahneesti: 1. Lasketaan virhe-estimaatti jokaiselle muuttujalle erikseen. 2. Valitaan se muuttuja, jolla virhe pienin. 3. Tämän jälkeen joka askeleella lisätään se muuttuja, joka yhdessä jo valittujen muuttujien kanssa antaa pienimmän virhe-estimaatin. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 16
Askeltavat menetelmät Taaksepäin askeltava muuttujanvalinta (backwards stepwise selection of variables) toimii tietysti päinvastoin: Liikkeelle lähdetään ottamalla mukaan kaikki muuttujat. Joka askeleella lasketaan virhe-estimaatit jättämällä pois jäljellä olevista muuttujista yksi kerrallaan. Valitaan pois jätettävä muuttuja siten, että jäljellä olevan muuttujajoukon antama virhe pienin. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 17
Virheen estimointi Jos ensin käytetään koko datajoukko oppimiseen, ja sitten estimoidaan oppimisvirhettä samassa datajoukossa, on virhe-estimaatti usein liian optimistinen. Ylisovitus koituu helposti ongelmaksi. Käypä ratkaisu tähän on jakaa data kahteen osaan, opetusjoukkoon ja validointijoukkoon: malli sovitetaan opetusjoukossa; virhe estimoidaan validointijoukossa. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 18
Virheen estimointi Jos näin sovitetaan monta mallia, voi malli ylisovittua validointijoukkoon. Tällöin voidaan jakaa data kolmeen osaan: malli sovitetaan opetusjoukossa, virhe estimoidaan validointijoukossa, se malli jonka virhe on pienin valitaan, ja valitun mallin virhe estimoidaan testijoukossa. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 19
train validate test Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 20
Mutta mitä jos dataa on vähän? Virheen estimointi Halutaan käyttää paljon dataa mallin muodostamiseen, jotta saadaan hyvä malli. Mutta jos validointijoukko on pieni, antaa se melko kohinaisen estimaatin virheelle. Ratkaisuna tähän: ristiinvalidointi! Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 21
Ristiinvalidointi Jaetaan datajoukko S:n yhtä suureen osaan. Käytetään näistä S 1 kpl mallin muodostamiseen ja 1 kpl virheen estimointiin. Tämä toistetaan S kertaa siten, että kukin joukko vuorollaan on validointijoukkona. Lopullinen virhe-estimaatti on näiden S:n virhe-estimaatin keskiarvo. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 22
train train train test 1st round train train test train 2nd round train test train train 3rd round test train train train 4th round Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 23
Leave one out Ristiinvalidoinnissa jaetaan datajoukko S:n yhtä suureen osaan ja käytetään näistä S 1 kpl mallin muodostamiseen ja 1 kpl virheen estimointiin. Tämä toistetaan S kertaa siten, että kukin joukko vuorollaan on validointijoukkona, ja lasketaan virheiden keskiarvo. Jos S=pisteiden lukumäärä datajoukossa, on kyseessä leave one outmenetelmä: yhtä pistettä vuorollaan käytetään validointiin ja loppuja mallin sovitukseen. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 24
Ristiinvalidointi Ristiinvalidoinnissa jaetaan datajoukko S:n yhtä suureen osaan ja käytetään näistä S 1 kpl mallin muodostamiseen ja 1 kpl virheen estimointiin - mutta miten S kannattaa valita? Jos S=pisteiden lukumäärä datajoukossa, on opetusjoukko joka kierroksella suuri eli opitaan hyvin, mutta virheen estimoimiseen jää vain yksi piste per kierros. Jos S on pienehkö, ja dataa muutenkin vähän, voi virhearvio olla aika pessimistinen. Yleinen käytäntö: S = 5 (fivefold cross-validation) tai 10 (tenfold crossvalidation). Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 25
Projektityö Wisconsin breast cancer data set Tehtävä: luokittele data annettuun kahteen luokkaan käyttäen (a) koko dataa (b) eteenpäin askeltavaa muuttujavalintaa (c) PCA + (b). Käytä virheen estimoimiseen ristiinvalidointia. Vertaa eri kohdissa saatuja luokitteluvirheitä. Montako muuttujaa valitset? Voit myös katsoa pääkomponentteja. Löytyykö niille tulkinta? Mitä esim. 1. pc kertoo? Deadline 1.4. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 26