Ensinnäkin mikä on riippumattomien komponenttien analyysin (ICA, Independent Component Analysis) ja projektiohaun (PP, Projection Pursuit) ero? ICA on nykyään hirveän suosittu. Mikä on paras ICA-algoritmi varsinkin ohjelmoinnin kannalta?
mikä ICA?
Aalto vuoriteekkari
180
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 1
Vanhimmat
PP pyrkii etsimään moniulotteiselle datalle "kiinnostavia" projektioita. Tällaisella menetelmällä voidaan dataa optimaalisella tavalla visualisoida. Tarkoitusperiä ovat mm. regressio, klusterointi ja aineiston tiheyden estimointi. Yksi kuuluisa esimerkki on tietokoneen satunnaislukugeneraattorin tuottamien pseudosatunnaisjakauman visualisointi. Kun se 2-ulotteisena esityksenä voi näyttää aivan tasan jakautuneena, saadaan tietyllä projektiolla avaruuteen viivoja, mutta tällaista pidetään generaattorin kannalta huonona ominaisuutena. Aikoja sitten ymmärrettiin, että gaussinen suunta on vähiten kiinnostava jakauma. Tämä johtuu keskeisestä raja-arvolauseesta. Keskeisen raja-arvolauseen (central limit theorem, CLT) mukaan otoskeskiarvojen jakauma noudattaa likimäärin normaalijakaumaa riippumatta siitä, miten tutkittava muuttuja on jakautunut perusjoukossa. Se on siis luonnossa varsin yleinen jakauma. Mutta ICA etsii juuri projektioita datalle, joka on kaukana gaussisesta jakaumasta
ICA-malli on x=As ( w)
missä x on havaittu datavektori, A on tuntematon sekoitusmatriisi ja s on tuntematon lähdedata, jossa korkeintaan yhden lähteen jakauma saa olla gaussinen. Laajennuksessa w on additiivista kohinaa. Kahden gaussisen lähteen s1 ja s2 lineaarikombinaatio a1*s1 a2*s2 on sekin gaussinen, jolloin s1 ja s2 on mahdoton saada selville.
ICA on siis PP:n huomattavan tärkeä erikoistapaus.
FastICA on nopea, sillä nimittäin on kuutiollinen konvergenssi. Se saavuttaa Cramer-Raon alarajan, jolloin se on tarkka, ehkä tarkin muista ICA-menetelmistä. Ohjelmoinnin kannalta se vaatii vain muutaman kymmentä riviä. Sitä saa valmiina pakkauksina.