Laskennallinen data-analyysi II Ella Bingham, ella.bingham@cs.helsinki.fi Kevät 2008 Ulottuvuuksien vähentäminen, SVD, PCA Kalvot perustuvat Saara Hyvösen kalvoihin 2007 Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto
Yleistä kurssista Kurssi on suoraan jatkoa Laskennallinen data-analyysi I:lle Sekä ohjatun että ohjaamattoman oppimisen menetelmiä Menetelmiä, jotka tulevat jatkossa vastaan muilla kursseilla ja tutkimuksessa Kolme luennoitsijaa, jokaisella 2 luentoa, väliviikoilla laskarit Ensimmäinen osuus: Ohjaamatonta oppimista Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 1
Toinen osuus (Jyrki Kivinen): Tukivektorikone (support vector machine, SVM) yleistää lineaarisen luokittelun (tai lineaarisen regression) ei-lineaaristen ennustajien muodostamiseen. SVM on nykyään eräs suosituimmista yleiskäyttöisistä oppimismenetelmistä. Tukivektorikoneessa lineaariseen luokittelijaan yhdistetään - ydinfunktio ja - regularisointi. Ydinfunktio on matemaattinen apukeino, jonka avulla lineaariseen oppijaan voidaan sisällyttää hyvin monipuolista piirteiden muodostamista (datan esikäsittelyä) pitäen laskenta tehokkaana. Regularisointia tarvitaan, jotta runsas uusien piirteiden salliminen ei Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 2
johtaisi ylisovittamiseen. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 3
Kolmas osuus (Patrik Hoyer): Vedetään kurssien lda-i ja lda-ii pääteemoja yhteen Probabilistinen (jopa Bayeslainen) näkökulma koneoppimiseen Epävarmuuden mallintaminen: miten menetelmistä saa sellaisia, että ne osaavat kertoa, kun eivät ole varmoja Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 4
Lisälukemista ensimmäisestä osuudesta: Kleinberg, Tomkins: Applications of linear algebra in information retrieval and hypertext analysis. Proc. ACM Symp. Principles of Database Systems, pp. 185-193, 1999 Tutorial site by Todd Will: http://www.uwlax.edu/faculty/will/svd/ Wikipedia: Singular value decomposition, Principal components analysis Muuttujien valinta: elektroninen kevytversio kirjasta H. Lohninger: Teach/Me Data Analysis, Springer-Verlag, 1999 löytyy http://www.vias.org/tmdatanaleng/wrapnt mlr183.html Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 5
Ulottuvuuksien vähentäminen: miksi? visualisointi ihmissilmälle datan kompressio kohinan poisto, poikkeavien arvojen etsiminen Kaksi peruslähestymistapaa: heitetään muuttujia pois, tai muodostetaan uusia muuttujia. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 6
Esim. käsinkirjoitetut numerot Halutaan luokitella käsinkirjoitetut numerot automaattisesti luokkiin 0-9: Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 7
Käsinkirjoitetut numerot jatkuu Jokainen numero on (esimerkiksi) 100x100 pikselin harmaasävykuva. Tätä voidaan ajatella pisteenä 10000-ulotteisessa avaruudessa. Kuvitellaan tilanne, jossa otetaan numero 3 ja luodaan joukko uusia kolmosia siirtämällä, kiertämällä ja skaalaamalla peruskolmonen: Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 8
Nyt, vaikka jokaisen pisteen dimensio on 10000, on meillä oikeasti vain neljä vapausastetta: siirto pysty- ja vaakasuunnissa, kierto sekä skaalaus. Näitä neljää vapausastetta voidaan ajatella latentteina eli piilomuuttujina. Oikeasti käsinkirjoitetut numerot eivät tietenkään muodostu näin yksinkertaisesti, vaan niissä on yksilöllisiä deformaatioita; tällaisten deformaatioiden lukumäärän voidaan kuitenkin ajatella olevan pieni verrattuna joukon dimensioon (10000). Koko käsinkirjoitettu numerojoukko voidaan siis kuvata paljon pienempidimensioisessa avaruudessa. Mutta miten? Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 9
(Lineaariset) piilomuuttujamallit 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. Menetelmiä on paljon, ja eri menetelmät antavat eri piilomuuttujat. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 10
Singulaariarvohajotelma Jokainen m n matriisi A voidaan kirjoittaa muotoon A m n = U m d S d d (V n d ) T, missä d = min(m, n). Matriisien U ja V sarakkeet ovat ortonormaalit (kohtisuorassa toisiaan vastaan ja yksikköpituiset). Matriisi S on diagonaalimatriisi: S = diag(σ 1, σ 2,..., σ d ), σ 1 σ 2... σ d 0. (singular value decom- Tämä on matriisin A singulaariarvohajotelma position, SVD) Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 11
Singulaariarvot ja -vektorit Matriisin S diagonaalialkiot σ j ovat matriisin A singulaariarvot. Matriisien U ja V sarakkeet ovat matriisin A vasemman- ja oikeanpuoleiset singulaarivektorit. Singulaariarvohajotelma voidaan myös kirjoittaa muodossa Av j = σ j u j, A T u j = σ j v j. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 12
Matlab-esimerkki A= 1 1 1 2 1 3 1 4 [U,S,V]=svd(A, econ ) U= -0.2195 0.8073-0.3833 0.3912-0.5472-0.0249-0.7110-0.4410 S= 5.7794 0 V= -0.3220 0.9467 0 0.7738-0.9467-0.3220 Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 13
Matriisin approksimointi Lause. Olkoon U k = (u 1 u 2... u k ), V k = (v 1 v 2... v k ) ja S k = diag(σ 1, σ 2,..., σ k ), ja määritellään A k = U k S k V T k. Tällöin min A B 2 = A A k 2 = σ k+1. rank(b) k Eli: 2-normin (myös Frobenius-normin) mielessä paras astetta k oleva approksimaatio matriisille saadaan singulaariarvohajotelmaa käyttämällä, ottamalla k ensimmäistä singulaariarvoa ja -vektoria. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 14
Entä sitten? Siis: 2-normin mielessä paras astetta k oleva approksimaatio matriisille saadaan singulaariarvohajotelmaa käyttämällä: A k = U k S k V T k. (aste = rank = lineaarisesti riippumattomien sarakkeiden määrä, nollasta poikkeavien singulaariarvojen määrä.) Tätä voi käyttää: kohinan poistoon datan kompressioon matriisin oikean asteen määrittämiseen Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 15
Esimerkki: kohinan poisto Olkoon A = A k + N, missä A k on (alhaista) astetta k oleva matriisi, ja N on pieni. Tällaisessa tapauksessa matriisin A singulaariarvoat käyttäytyvät tyypillisesti tähän tapaan: 8 singular values 7 6 5 4 3 2 1 0 0 2 4 6 8 10 12 14 16 18 20 index Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 16
2 log of singular values 1 0 1 2 3 4 0 2 4 6 8 10 12 14 16 18 20 index Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 17
Esimerkki: käsinkirjoitetut numerot Käytetään singulaariarvohajotelmaa käsinkirjoitettujen numeroiden kuvaamiseen. Sen sijaan, että käytetään 10000 pikseliä, käytetäänkin pientä määrää singulaarivektoreita. Otetaan siis iso kasa kolmosia, muodostetaan joka kuvasta vektori, laitetaan ne sarakkeiksi datamatriisiin, ja lasketaan singulaariarvohajotelma. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 18
Esimerkki: käsinkirjoitetut numerot Vasemmanpuoleiset singulaariarvot tai singulaarikuvat u j : Ensimmäinen on tyypillisesti datan keskiarvo ja seuraavat tuovat datasta lisää piirteitä esiin Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 19
Esimerkki: käsinkirjoitetut numerot Voidaan olettaa, että kolmoset on helpompi muodostaa käyttäen kolmosen singulaarivektoreita kuin vaikkapa viitosen singulaarivektoreita. Nyt voidaan esimerkiksi luokitella käsinkirjoitettuja numeroita katsomalla, miten hyvin ne voidaan muodostaa kussakin kannassa. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 20
Esimerkki: Tekstidatan analysointi Esitetään dokumenttikokoelma termi-dokumentti-matriisina A, jossa rivit vastaavat sanoja, ja sarakkeet dokumentteja, ja matriisin alkion a i,j arvo kertoo sanan i painon dokumentissa j. Varoitus: Tekstianalyysissä on tapana laittaa matriisin rivit ja sarakkeet eri päin kuin tiedon louhinnassa yleensä! Tekstidatassa usein ongelmana synonyymit (haluaisimme, että elefantti ja norsu samaistuisivat) ja polyseemit (haluaisimme erottaa milloin kurkku tarkoittaa vihannesta ja milloin ruumiinosaa). SVD auttaa tässä: sanojen merkitykset kuvautuvat avaruuden eri ulottuvuuksiin. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 21
Tässä kontekstissa SVD kulkee nimellä LSI (Latentti Semanttinen Indeksointi) Esimerkki kirjasta [Manning and Schütze: Foundations of statistical natural language processing]: termi-dokumenttimatriisi A on doc1 doc2 doc3 doc4 doc5 doc6 cosmonaut 1 0 1 0 0 0 astronaut 0 1 0 0 0 0 moon 1 1 0 0 0 0 car 1 0 0 1 1 0 truck 0 0 0 1 0 1 Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 22
Vasempien singulaarivektoreiden matriisi U on Dim 1 Dim 2 Dim 3 Dim 4 Dim 5 cosmonaut 0.44-0.30-0.57 0.58-0.25 astronaut 0.13-0.33 0.59 0.00-0.73 moon 0.48-0.51 0.37 0.00 0.61 car 0.70 0.35-0.15-0.58-0.16 truck 0.26 0.65 0.41 0.58 0.09 ja singulaariarvot sisältävä matriisi S on Dim 1 Dim 2 Dim 3 Dim 4 Dim 5 Dim 1 2.16 0 0 0 0 Dim 2 0 1.59 0 0 0 Dim 3 0 0 1.28 0 0 Dim 4 0 0 0 1.00 0 Dim 5 0 0 0 0 0.39 Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 23
ja oikeanpuoleisten singulaarivektoreiden matriisi V T on doc1 doc2 doc3 doc4 doc5 doc6 Dim 1 0.75 0.28 0.20 0.45 0.33 0.12 Dim 2-0.29-0.53-0.19 0.63 0.22 0.41 Dim 3-0.28 0.75-0.45 0.20-0.12 0.33 Dim 4 0.00 0.00 0.58 0.00-0.58 0.58 Dim 5 0.53-0.29-0.63-0.19-0.41 0.22 Otetaan vain 2 ensimmäistä singulaariarvoa ja -vektoria: U:ssa termit ryhmittyvät toisen singulaarivektorin mukaan (cosmonaut, astronaut, moon) ja (car, truck) V T :ssä dokumentit ryhmittyvät toisen singulaarivektorin mukaan (doc1,doc2,doc3) ja (doc4,doc5,doc6) Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 24
Esimerkki: Tiedonhaku tekstidokumenteissa Halutaan tehdä hakuja suuresta tekstidokumenttien kokoelmasta. Haku on tällöin vektori q, jonka jokainen alkio vastaa niinikään sanaa. Haku voidaan tehdä vertaamalla suoraan vertaamalla hakuvektoria kuhunkin dokumenttiin: cos(θ(a j, q)) = a T j q a j 2 q 2 tol. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 25
Usein sen sijaan lasketaan ensin termi-dokumentti-matriisille singulaariarvohajotelma, approksimoidaan matriisia (ongelman alkuperäiseen kokoon verrattuna) pienehköllä määrällä singulaarivektoreita, lausutaan myös hakuvektori singulaarivektorien avulla, ja tehdään hakuvektorin ja dokumenttien vertailu tässä uudessa kannassa. Nopeampaa (datan kompressio) ja (usein) tarkempaa (kohinan poisto). Dokumenttien esitysmuoto LSI-avaruudessa on â = U T k a jossa a on alkuperäinen dokumenttivektori ja U k on k:n ensimmäisen vasemmanpuoleisen singulaarivektorin muodostama matriisi Samoin hakuvektorin esitysmuoto on ˆq = U T k q Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 26
Esimerkki: Hakuvektori cosmonaut astronaut on alkuperäisessä avaruudessa q cosmonaut 1 astronaut 1 moon 0 car 0 truck 0 ja 2-ulotteisessa LSI-avaruudessa ˆq = U T 2 q = ( ) 0.57 0.63 Dokumenttien â ja hakuvektorin ˆq väliset kosini-similaarisuudet ovat 0.85, 0.99, 0.97, -0.06, 0.27 ja -0.43. Hakuvektori on siis lähimpänä dokumentteja 2 ja 3. Tämä näkyy myös kuvassa: Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 27
1 4 0.8 0.6 6 0.4 0.2 5 0 0.2 0.4 0.6 3 q 1 0.8 2 1 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 28
Myös uudet dokumentit (sarakkeet) voi esittää LSI-avaruudessa kertomalla ne U k :lla, eli ei tarvitse laskea SVD:tä uudestaan Uudet termit (rivit) voisi samoin esittää LSI-avaruudessa kertomalla V k :lla, mutta tämä on käytännössä harvinaisempaa Varoitus: Harjoitustehtävässä pyydetään esittämään uusi vektori vanhojen datavektoreiden avulla lasketussa kannassa. Nyt pitää olla tarkkana, onko uusi datavektori rivi vai sarake! Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 29
Laskennan vaativuudesta SVD:n vaativuus on neliöllinen d:n suhteen ja kuutiollinen k:n suhteen, jossa d = ranki = min(sarakkeiden määrä, rivien määrä) ja k = laskettavien singulaariarvojen määrä Harvalle datalle on olemassa tehokkaita implementaatioita Laskentaa voi keventää tekemällä SVD:n vain osalle havainnoista (dokumenteista) ja esittämällä uudet havainnot SVD-avaruudessa kertomalla ne U k :lla Tärkeintä on kuitenkin valita k mahdollisimman pieneksi, mutta ei liian pieneksi Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 30
Laskennan vaativuudesta: k:n valinta Yleensä muutama kymmenen riittää, mutta teoreettisiakin menetelmiä on: tarkastele singulaariarvojen pienenemistä, ja lopeta kun uusi arvo on selvästi pienempi kuin aiemmat. Ongelma: pitää laskea monta ylimääräistä arvoa, jotta näkee milloin joku on selvästi pienempi laske Frobenius-normi datamatriisin ja sen approksimaation erotukselle: olkoon Y = A A k, silloin F (Y) = sum(diag(y T Y)) ja vertaa tätä F (A):n arvoon; jos edellinen on pieni niin silloin A k on tarpeeksi hyvä approksimaatio Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 31
Laske kaikkien singulaariarvojen summa ja k:n ensimmäisen summa, ja valitse k niin että saat esim. 85 % kaikkien summasta. (Mutta tällöin pitää laskea kaikki!) Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 32
Pääkomponenttianalyysi Tavoitteena on etsiä pieni joukko (keinotekoisia) muuttujia siten, että datan varianssista säilyy mahdollisimman suuri osuus. Ensimmäinen pääkomponentti on se vektori, jolle projisoidun datan varianssi on suurin. Kun tämä on löydetty, jatketaan etsimällä tälle ortogonaalinen eli kohtisuora suunta, joka selittää mahdollisimman suuren osan vielä selittämättä jääneestä varianssista. Jokainen pääkomponentti on lineaariyhdistely alkuperäisiä muuttujia. PCA = principal component analysis Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 33
1st principal component x x x x x x x x x x x x 2nd principal component x x x Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 34
PCA lyhyesti Olkoon A n m-matriisi, jonka rivit ovat havaintopisteitä ja sarakkeet muuttujia. Keskitetään eli nollakeskiarvoistetaan A: vähennetään jokaisesta sarakkeesta sarakkeen keskiarvo, jolloin uuden datamatriisin sarakkeiden keskiarvo on nolla. Olkoon tämä keskitetty matriisi nyt A. Muodostetaan nollakeskiarvoistetun datan kovarianssimatriisi C = 1 n AT A. Pääkomponentit ovat kovarianssimatriisin ominaisvektorit. Ominaisarvot kertovat datan varianssin pääkomponenttien suunnassa. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 35
PCA pitkästi Miten löydetään ensimmäinen pääkomponentti w? Olkoon w R m (toistaiseksi tuntematon) vektori, jolle projisoituna datan varianssi on suurin. Vaaditaan vielä, että w T w = 1. Vektorin a projektio vektorille w on w T a = m j=1 a jw j. Koko datamatriisin projektio vektorille w on Aw. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 36
Varianssi: PCA pitkästi σw 2 = 1 n (Aw)T (Aw) = 1 n wt A T Aw = w T Cw missä C = 1 n AT A on matriisin A kovarianssimatriisi (A on keskitetty!) Tavoitteena on maksimoida varianssi ehdolla w T w = 1. Optimointiongelma: maksimoi f = w T Cw λ(w T w 1), missä λ on Lagrangen kerroin. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 37
PCA pitkästi Optimointiongelma: maksimoi f = w T Cw λ(w T w 1), missä λ on Lagrangen kerroin. Derivoidaan w:n suhteen ja saadaan f w = 2Cw 2λw = 0 Tämä on itse asiassa ominaisarvoyhtälö: Cw = λw, missä C = 1 n AT A. Varianssi saadaan kertomalla yhtälöä vasemmalta w:n transpoosilla. Kun vieä muistetaan, että w T w = 1 saadaan varianssiksi w T Cw = λ. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 38
PCA pitkästi Varianssi: w T Cw = λ. Tämä on maksimissaan, kun w on kovarianssimatriisin suurinta ominaisarvoa vastaava ominaisvektori, ja suurin ominaisarvo itse kertoo varianssin. Ensimmäinen pääkomponentti on siis kovarianssimatriisin suurinta ominaisarvoa vastaava ominaisvektori. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 39
PCA:n ja SVD:n yhteys Mutta jos kirjoitetaankin A = USV T saadaan C = A T A = VS T U T USV T, CV = VS T S. Kun tämä kirjoitetaan sarake kerrallaan, nähdään, että Cv j = σ 2 jv j, eli matriisin A kovarianssimatriisin ominaisarvot ovat singulaariarvojen neliöt, ja ominaisvektorit ovat oikeanpuoleiset singulaarivektorit! Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 40
Ensimmäinen pääkomponentti on siis datamatriisin 1. oikeanpuoleinen singulaarivektori. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 41
Entä seuraavaksi? Jatketaan samaan tapaan: etsitään kaikille löydetyille pääkomponenteille kohtisuorassa oleva vektori, jolle projisoituna varianssi on suurin. Pääkomponentit ovat oikeanpuoleiset singulaarivektorit, singulaariarvojen neliöt kertovat varianssin kyseisen pääkomponentin suuntaan. Eli: PCA on SVD keskitetylle datalle! Singulaariarvojen avulla voi arvioida, montako pääkomponenttia tarvitaan. Peukalosääntö: valitse komponenttien lukumäärä siten, että 85% varianssista säilyy: k j=1 σ2 j n 0.85. j=1 σ2 j Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 42
Esimerkki: 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! Sen sijaan, tee pääkomponenttianalyysi ja projisoi data kahden ensimmäisen komponentin määrittämään tasoon. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 43
Miten pääkomponentteja ei lasketa: Kirjallisuudessa esitellään tavan takaa algoritmeja, joissa pääkomponentit lasketaan kovarianssimatriisin ominaisvektoreina. Laskennallisesti tämä on huono tapa! Parempi laskea singulaariarvohajotelma. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 44
Miten pääkomponentit lasketaan: Matriisi A, rivit: datapisteet, sarakkeet=muuttujat. 1. Keskitä data vähentämällä jokaisesta sarakkeesta keskiarvo 2. Laske keskitetyn matriisin  singulaariarvohajotelma (tai k ensimmäistä singulaariarvoa ja -vektoria):  = USV T. 3. Matriisin V sarakkeet ovat pääkomponentit, ja datapisteiden kooridnaatit uudessa (pääkomponenttien virittämässä) kannassa ovat US. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 45
Matlab-koodi %Data matrix A, columns:variables, rows: data points %matlab function for computing the first k principal components of A. function [pc,score]=pca(a,k); [rows,cols]=size(a); Ameans=repmat(mean(A,1),rows,1); %matrix, rows=means of columns A=A-Ameans; %centering data [U,S,V]=svds(A,k); %k is the number of pc:s desired pc=v; score=u*s; %now A=score*pc +Ameans; Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 46
Huom. PCA löytyy myös valmiina statistics toolboxista, MUTTA... ÄLÄ KÄYTÄ SITÄ!! Miksi? Lisenssejä on liian vähän! Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 47
Miksi PCA? Jos PCA = SVD niin miksi siitä piti puhua? Koska SVD antaa aina origon kautta kulkevan vektorin. Datan keskittäminen pitää huolen siitä, että origo on datajoukon keskellä. Esimerkiksi harvalla datalla tämä ei ole ratkaisevaa; mutta joskus voi olla: Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 48
4 3 2 1 0 1 2 0 1 2 3 4 5 6 Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 49
4 3 2 1 0 1 2 0 1 2 3 4 5 6 Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 50
Yhteenveto Jokainen m n matriisi A, m n, voidaan kirjoittaa singulaariarvohajotelman avulla muotoon A = USV T, missä U R m d ja V R n d ovat ortogonaaliset, d = min(m, n), ja S R d d on diagonaalimatriisi, jonka diagonaalialkiot ovat singulaariarvot σ 1 σ 2... σ n 0. 2-normin mielessä paras astetta k oleva approksimaatio matriisille saadaan singulaariarvohajotelmaa käyttämällä: A k = U k S k V T k, missä U k, V k koostuvat ksta ensimmäisestä vasemman- ja oikeanpuoleisesta singulaarivektorista ja S k :n diagonaalialkiot ovat k suurinta singulaariarvoa. Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 51
Pääkomponenttianalyysi on sukua SVD:lle: pääkomponentit ovat keskitetyn datamatriisin oikeanpuoleiset singulaarivektorit. Pääkomponentit valitaan siten, että datan varianssista selittyy suurin osa. Ensimmäinen pääkomponentti on se vektori, jolle projisoidun datan varianssi on suurin. Laskemalla datamatriisille SVD tai PCA ja approksimoimalla matriisia muutaman ensimmäisen singulaarivektorin/pääkomponentin avulla kompressoidaan dataa ja poistetaan kohinaa. Nyt voidaan klusteroida/luokitella/tms uutta dataa. PCA toimii parhaiten silloin kun data on gaussista, tai vähintäänkin Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 52
jatkuva-arvoista SVD:llä on paljon muutakin käyttˆä kuin latenttimuuttujamallinnus: esimerkiksi Googlen PageRank-algoritmi tai spektraalijärjestys Myös muita latenttimuuttujamenetelmiä löytyy: ICA, NMF, probabilistiset versiot (näissä datan gaussisuus ei ole vaatimuksena) Laskennallinen data-analyysi II, kevät 2008, Helsingin yliopisto 53