Hierarkkinen ryvästäminen

Samankaltaiset tiedostot
Luentorunko keskiviikolle Hierarkkinen ryvästäminen

Luentorunko perjantaille

Hierarkkinen klusterointi

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

Ohjaamaton oppiminen. Juho Rousu. Laskennallinen Data-Analyysi I,

Algoritmit 1. Luento 13 Ti Timo Männikkö

Datanäytteiden piirteiden skaalaus/normalisointi (1)

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia

lähtokohta: kahden O(h) korkuisen keon yhdistäminen uudella juurella vie O(h) operaatiota vrt. RemoveMinElem() keossa

Rinnakkaistietokoneet luento S

Algoritmi on periaatteellisella tasolla seuraava:

Algoritmit 1. Luento 13 Ma Timo Männikkö

805306A Johdatus monimuuttujamenetelmiin, 5 op

(p j b (i, j) + p i b (j, i)) (p j b (i, j) + p i (1 b (i, j)) p i. tähän. Palaamme sanakirjaongelmaan vielä tasoitetun analyysin yhteydessä.

jens 1 matti Etäisyydet 1: 1.1 2: 1.4 3: 1.8 4: 2.0 5: 3.0 6: 3.6 7: 4.0 zetor

Kombinatorinen optimointi

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen

Numeeriset menetelmät

3 Derivoituvan funktion ominaisuuksia

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari

Algoritmit 1. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 11 Ti Timo Männikkö

10. Painotetut graafit

Algoritmit 2. Luento 7 Ti Timo Männikkö

isomeerejä yhteensä yhdeksän kappaletta.

Matematiikan tukikurssi

Yksinkertainen alustusalgoritmi k:n keskiarvon ryvästysmenetelmää

13 Lyhimmät painotetut polut

Mallipohjainen klusterointi

10. Painotetut graafit

Algoritmit 2. Luento 2 Ke Timo Männikkö

Konvergenssilauseita

Luku 8. Aluekyselyt. 8.1 Summataulukko

Algoritmit 2. Luento 13 Ti Timo Männikkö

Luetteloivat ja heuristiset menetelmät. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki

4. Joukkojen käsittely

Algoritmit 2. Luento 2 To Timo Männikkö

Malliratkaisut Demot

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

Valitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I.

Tarkennamme geneeristä painamiskorotusalgoritmia

Nopea kertolasku, Karatsuban algoritmi

Algoritmit 2. Luento 13 Ti Timo Männikkö

Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia

saadaan kvanttorien järjestystä vaihtamalla ehto Tarkoittaako tämä ehto mitään järkevää ja jos, niin mitä?

Kokonaislukuoptimointi

Luku 2. Jatkuvien funktioiden ominaisuuksia.

58131 Tietorakenteet Erilliskoe , ratkaisuja (Jyrki Kivinen)

4.3. Matemaattinen induktio

Algoritmit 1. Luento 3 Ti Timo Männikkö

Esimerkkejä kokonaislukuoptimointiongelmista

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen)

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmit 2. Luento 5 Ti Timo Männikkö

Algoritmit 1. Luento 12 Ti Timo Männikkö

Algoritmit 2. Luento 14 Ke Timo Männikkö

Algoritmien suunnittelu ja analyysi (kevät 2004) 1. välikoe, ratkaisuja

Algoritmit 2. Luento 3 Ti Timo Männikkö

Rinnakkaistietokoneet luento S

Stabilointi. Marja Hassinen. p.1/48

f(n) = Ω(g(n)) jos ja vain jos g(n) = O(f(n))

Ohjaamaton oppiminen. Marko Salmenkivi. Johdatus koneoppimiseen, syksy 2008

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

Harjoitus 5 ( )

Paikkatiedon käsittely 6. Kyselyn käsittely

Kimppu-suodatus-menetelmä

1 Reaaliset lukujonot

Lyhyt, kevät 2016 Osa A

saadaan kvanttorien järjestystä vaihtamalla ehto Tarkoittaako tämä ehto mitään järkevää ja jos, niin mitä?

Algoritmit 1. Luento 12 Ke Timo Männikkö

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

Algoritmit 1. Demot Timo Männikkö

Kertaus. x x x. K1. a) b) x 5 x 6 = x 5 6 = x 1 = 1 x, x 0. K2. a) a a a a, a > 0

3.4 Peruutus (backtracking)

BM20A5800 Funktiot, lineaarialgebra ja vektorit Harjoitus 4, Syksy 2016

Algoritmit 1. Demot Timo Männikkö

Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2017 Insinöörivalinnan matematiikan koe , Ratkaisut (Sarja A)

MS-C1340 Lineaarialgebra ja

Algoritmit 1. Luento 14 Ke Timo Männikkö

Klusterointiongelma. Luento 6: Klusterointi. Usein suotavia ominaisuuksia. Usein suotavia ominaisuuksia

4. Luennon sisältö. Lineaarisen optimointitehtävän ratkaiseminen Simplex-menetelmä

Kenguru 2017 Benjamin (6. ja 7. luokka)

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007

Hajautetut algoritmit. seminaari syksyllä 2007 vastuuhenkilö Jyrki Kivinen toinen vetäjä Timo Karvi

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

Liite 1. Laajennettu Eukleideen algoritmi suoraviivainen tapa

Lineaarinen optimointitehtävä

Laskennallisesti Älykkäät Järjestelmät. Sumean kmeans ja kmeans algoritmien vertailu

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä?

Olkoon S(n) kutsun merge-sort(a, p, q) tilavaativuus kun p q + 1 = n. Oletetaan merge toteutetuksi vakiotyötilassa (ei-triviaalia mutta mahdollista).

Algoritmit 2. Luento 13 Ti Timo Männikkö

vaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS

JOHDATUS TEKOÄLYYN TEEMU ROOS

Algoritmit 1. Luento 8 Ke Timo Männikkö

Algoritmit 1. Luento 10 Ke Timo Männikkö

Demo 1: Simplex-menetelmä

Algoritmit 2. Luento 9 Ti Timo Männikkö

Analyysi 1. Harjoituksia lukuihin 1 3 / Syksy Osoita täsmällisesti perustellen, että joukko A = x 4 ei ole ylhäältä rajoitettu.

2. Eukleideen algoritmi

Transkriptio:

Hierarkkinen ryvästäminen Juho Rousu Laskennallinen Data-Analyysi I, 20.2.2008

Ryvästyshierarkia & dendrogrammi Hierakkiset ryvästysmenetelmien tulos voidaan visualisoida nk. dendrogrammipuuna Puun lehtinä kaikki datapisteet eli yhden pisteen pisteryhmät Alhaalta ylöspäin edetessä yhdistetään lähimmät pisteryhmät toisiinsa; tässä pisteryhmien välinen etäisyys ryhmien kauimmaisten pisteiden etäisyys Vaakaviivat sijaitsevat etäisyydellä, jolla kytketyt pisteryhmät yhdistettiin x 2 6 4 2 9 0 7 8 2 4 6 3 1 2 6 5 4 kytkettyjen pisteryhmien välinen etäisyys 15 10 5 0 5 6 4 1 3 2 7 8 9

Ryvästysten eristäminen dendrogrammista Dendrogrammista voidaan eristää erilaisia ryvästyksiä valitsemalla suurin yhdistämisetäisyys sopivasti: d = 20 = K = 1, d = 10 = K = 2, d = 5 = K = 3, d = 0 = K = 9 Sama toimii myös päinvastoin: annettuna ryppäiden määrä, saadaan yhdistämisetäisyydelle ylä- ja alaraja x 2 6 4 2 9 0 7 8 2 4 6 3 1 5 0 5 10 x 1 2 6 5 4 kytkettyjen pisteryhmien välinen etäisyys 15 10 5 0 5 6 4 1 3 2 7 8 9 datapisteen indeksi

Miten valita ryppäiden määrä K? Hierarkkinen ryvästys ei vapauta meitä täysin ryppäiden määrän valinnan ongelmasta, mutta dendrogrammi auttaa tekemään informoidun valinnan. Vaihtoehtoja Leikataan etukäteen kiinnitellyllä etäisyystasolla d Leikataan kohdasta, jossa kahden peräkkäisen yhdistämisen etäisyyksien ero on suurin. d gap (t) = d t+1 d t Käytetään K :n keskiarvon ryvästyksen yhteydessä esiteltyjä kriteerejä (kyynärpääkriteeri, MDL,...)

Hierarkkiset ryvästämismenetelmät Hierarkkinen ryvästysalgoritmi voi olla joko Koostava (agglomerative), jolloin algoritmi muodostaa vähittäin yhä suurempia ryppäitä liittämällä toisiinsa lähekkäin olevia ryppäitä Osittava (divisive), jolloin algoritmi muodostaa vähittäin yhä pienempiä osittamalla löyhiä ryppäitä kahteen osaan esim. K -means -algoritmilla (K = 2)

Koostava hierarkkinen ryvästäminen Koostava hierarkkinen ryvästämisen alkutilanne on se, jossa kukin datapiste on oma ryppäänsä Ryppäiden yhdistäminen perustuu ryppäiden välisen etäisyyteen d(c i, C j ): joka vaiheessa toisiaan lähinnä olevat ryppäät yhdistetään Tavallisesti monotonisuusominaisuus on toivottava: d 1 d 2... d k, missä d t on askeleessa t yhdistettyjen ryppäiden etäisyys.

Algoritmi: koostava hierarkkinen ryvästäminen % alusta kukin esimerkki omaan ryppääseensä C i = {x i }, i = 1,..., n; % laske ryppäiden väliset etäisyydet taulukkoon D D ij = d(c i, C j ), i, j = 1,..., n while vähintään kaksi rypästä jäljellä do % etsi kaksi toisiaan lähinnä olevaa rypästä {i, j } = argmin {i,j C i,c j C} D ij; % liitä rypäs C j ryppääseen C i C i = C i C j ; C = C \ {C j }; % päivitä etäisyydet D i,k = d(c i, C k ), C k C, C k C i ; end while

Algoritmin aikavaativuus Joka iteraatiossa algoritmi liittää kaksi ryvästä toisiinsa, joten while-silmukka suoritetaan tasan n 1 kertaa, missä n on datapisteiden määrä Toisiaan lähinnä olevien ryppäiden löytämiseksi O(n 2 ) kokoinen ryppäiden pareittaisten etäisyyksien taulukko käydään kokonaan läpi joka askeleessa: O(n 3 ) etäisyysvertailua algoritmin suorituksen aikana tämä voidaan pudottaa aikaan O(n 2 log n) tai O(n 2 ) ryppäiden etäisyysfunktiosta riippuen Jos taulukoidaan ryppäiden pareittaiset etäisyydet, tarvitsee vain laskea uuden ryppään etäisyydet vanhoihin ryppäisiin, yhteensä O(n 2 ) etäisyyslaskuoperaatiota. nämä voidaan toteuttaa O(1) ajassa per operaatio

Ryppäiden etäisyysfunktiot (1/3) Etäisyysfunktiota vaihtamalla saadaan seuraavat variantit: Keskipisteryvästys (centroid clustering): d(c i, C j ) = d(r i, r j ), missä r i ryppään C i edustajavektori Lähinaapuriryvästys (nearest neighbor clusteting, single-link clustering): d(c i, C j ) = min d(x i, x j ) x i C i,x j C j Kauimmaisen naapurin ryvästys (complete-link clustering): d(c i, C j ) = max d(x i, x j ) x i C i,x j C j Keskimääräisen etäisyyden ryvästys (average-link clustering): d(c i, C j ) = 1 d(x i, x j ) (n i + n j )(n i + n j 1) x i,x j C i C j,x i x j

Ryppäiden etäisyysfunktiot (2/3) Visualisoituna lähinaapuriryvästys (a), kauimmaisen naapurin ryvästys (b), keskipisteryvästys (c) ja keskimääräisen etäisyyden ryvästys (d)

Ryppäiden etäisyysfunktiot (3/3) Ryppäiden etäisyysfunktion valinta vaikuttaa ainakin seuraaviin ominaisuuksiin: Syntyvien ryppäiden muoto Implementaatio/aikavaativuus Monotonisuus yhdistämisetäisyyden suhteen Optimaalisuus

Ryppäiden muoto Lähinaapuriryvästyksellä on taipumus tuottaa ketjumaisia ryppäitä Kauimmaisen naapurin ryvästys tuottaa kompakteja ryppäitä, mutta on sensitiivinen yksittäisten kaukana olevien pisteiden (outlier) suhteen Keskimääräisen etäisyyden ryvästys ja keskipisteryvästys ovat näiden kahden ääripään välissä

Ryvästyssimulaatio: Iris Tarkastellaan Iris-datan hierarkkista ryvästystä MATLAB:ssa funktioilla Y = pdist(x,etaisyys_tyyppi) - erimerkkien parietäisyydet Z = linkage(y,yhdistamis_tyyppi) - hierarkian rakentaminen dendrogram(z) - dendrogrammin piirtäminen

Algoritmi: koostava hierarkkinen ryvästäminen % alusta kukin esimerkki omaan ryppääseensä C i = {x i }, i = 1,..., n; % laske ryppäiden väliset etäisyydet taulukkoon D D ij = d(c i, C j ), i, j = 1,..., n while vähintään kaksi rypästä jäljellä do % etsi kaksi toisiaan lähinnä olevaa rypästä {i, j } = argmin {i,j C i,c j C} D ij; % liitä rypäs C j ryppääseen C i C i = C i C j ; C = C \ {C j }; % päivitä etäisyydet D i,k = d(c i, C k ), C k C, C k C i ; end while

Etäisyysfunktio & aikavaativuus Etäisyysfunktion ominaisuuksia voidaan hyödyntää Ryppäiden välisten parietäisyyksien nopeassa päivittämisessä Toisiaan lähinnä olevien ryppäiden löytämisessä nopeasti

Parietäisyyksien nopea päivitys Tarkastellaan etäisyyksien D ik, k j päivitystä kun ryppääseen C i on liitetty C j : C i = C i C j Seuraaville etäisyyksille päivitys voidaan tehdä O(1) ajassa taulukoitujen etäisyyksien D ik, D jk perusteella: Lähinaapuri: D ik = min(d ik, D jk ) Kauimmainen naapuri: D ik = max(d ik, D jk ) Keskimääräinen etäisyys: D ik = 1 (p p ik D ik ijk + p jk D jk + p ij D ij p i D ii p j D jj p k D kk ), missä kertoimet p k, p ik ja p ijk ovat ryppäiden C k, C i C k ja C i C j C k sisältäminen esimerkkiparien määrät. Entä keskipisteryvästys? Luennoija ei heti keksinyt O(1) päivitystä, mutta sellainen voi silti olla olemassa...

Yhdistettävän parin nopea etsintä Talletetaan kunkin ryppään etäisyydet muihin ryppäisiin prioriteettijonoon (esim. kekorakenne) O(1) ajassa löydetään (keon päältä) tiettyä rypästä lähinnä oleva rypäs ja vastaava etäisyys O(log n) ajassa kunkin keon päivitys, yhteensä O(n log n) aika per iteraatio Koko algoritmin aikana kuluu aikaa O(n 2 log n)

Yhdistämisetäisyyden monotonisuus Hierakkinen ryvästysmenetelmä on monotoninen, jos algoritmin suorituksen aikana yhdistämisetäisyyksien jono on ei-vähenevä d 1 d 2 d N 1 Ei-monotonisen menetelmän tuottama dendrogrammi voi sisältää inversioita, jotka ilmenevät ristikkäin menevinä kaarina

Keskipisteryvästäminen ei ole monotoninen Kuvassa pisteet d 1 = (1 + ɛ, 1), d 2 = (5, 1), on yhdistetty etäisyydellä 4 ɛ, mutta piste d 3 = (3, 1 + 2 3) ja ensimmäisen ryppään keskipiste o = (3 + ɛ/2, 1) yhdistetään etäisyydellä 2 3 + ɛ/2 3.4641 + ɛ/2 Keskipisteryvästäminen (centroid clustering) ei siis ole monotoninen menetelmä Sen sijaan voidaan osoittaa, että lähi- ja kauimmaisen naapurin ryvästäminen sekä keskimääräisen etäisyyden ryvästäminen ovat monotonisia

Ryvästyksen optimaalisuus Ryppään C yhdistämisetäisyys d(c) on pienin etäisyys, jolla C voidaan muodostaa kahdesta osasta C, C Tämä etäisyys riippuu ainostaan käytetystä etäisyysmitasta, ei menetelmästä Ryvästyksen yhdistämisetäisyys määritellään ryppäiden yhdistämisetäisyyden maksimina d(c) = max K k=1 d(c k) Hierakkisesti muodostettu ryvästys C = {C 1,..., C K } on optimaalinen, jos d(c) d(c ) kaikilla C, C K ts. ei ole olemassa ryävstystä, jossa on korkeintaan saman verran ryppäitä ja pienempi yhdistämisetäisyys

Monotonisuus vs. optimaalisuus Monotonisuus ja optimaalisuus mittaavat ryvästysmenetemästä hieman eri ominaisuutta Monotonisuus tarkoittaa, että algoritmin edetessä yhdistämisetäisyys ei koskaan vähene (dendrogrammissa ei ole ristiin meneviä kaaria) Optimaalisuus tarkoittaa, että ryvästyksen (suurin) yhdistämisetäisyys on mahdollisimman pieni (dendrogrammi on mahdollisimman matala)

Ryvästysmenetelmien optimaalisuus Voidaan osoittaa, että lähinaapuriryvästys on optimaalinen (todistus sivuutetaan) Kauimmaisen naapurin, keskimääräisen etäisyyden ja keskiarvoryvästysmenetelmät eivät sen sijaan ole optimaalisia

Ryppään yhdistämisetäisyydet eri menetelmissä Ryppäiden yhdistämisetäisyydet voidaan tyypillisesti lukea suoraan ryyppäistä, muodostushistoriaa tuntematta Lähinaapuriryvästys: d(c) = max C C min x C,x C C d(x, x ) Kauimmaisen naapurin ryvästys: d(c) = max x,x C d(x, x ) Keskimääräisen etäisyyden ryvästys: 1 C ( C 1) x x d(x, x );

Kauimmainen naapuri ja keskimääräinen etäisyys eivät tuota optimaalista ryvästystä Kauimmaisen naapurin ja keskimääräisen etäisyyden ryvästysmenetelmät eivät ole optimaalisia, mikä nähdään alla olevasta esimerkistä Molemmat algoritmit liittävät ensin toisiinsa pisteet etäisyydellä 1 (d 2 ja d 3 ) ja päätyvät kahden ryppään ryvästykseen {{d 1, d 2, d 3 }, {d 4 }} tai {{d 1 }, {d 2, d 3, d 4 }}. Optimaalinen ryvästys molemmissa tapauksissa {{d 1, d 2 }, {d 1, d 2 }}, Yhdistämisetäisyys kauimmaisen naapurin menetelmällä 4 (optimi 3) keskimääräisen etäisyyden menetelmällä (1 + 3 + 4)/3 = 2.5 (optimi 1.5)

Keskipisteryvästys ei ole optimaalinen Keskipisteryvästämisen epäoptimaalisuus nähdään kuvan esimerkistä Kuvassa pisteet d 1 = (1 + ɛ, 1), d 2 = (5, 1), on yhdistetty etäisyydellä 4 ɛ, joka on myös ryvästyksen {{d 1, d 2 }, {d 3 }} (K = 2) yhdistämisetäisyys Ryvästyksen {{d 1, d 2, d 3 }} (K=1) yhdistämisetäisyys on d({{d 1, d 2, d 3 }}) = 3.46 < 4 ɛ eli pienempi määrä ryppäitä saadaan pienemmällä yhdistämisetäisyydellä

Hierarkkiset kokoavat ryvästysmenetelmät: yhteenveto menetelmä aikavaativuus opti- kommentti maalinen? lähinaapuri O(n 2 ) on ketjumaiset ryppäät kauimmainen pari O(n 2 ) log n ei 'outlier'-herkkä keskimääräinen etäisyys O(n 2 ) log n ei useimmiten hyvä keskipiste O(n 2 ) log n ei ei-monotoninen

Hierarkkinen vs. K -keskiarvon ryvästys K -means on nopea (O(nK)), epädeterministinen ja vaatii kiinteän ryppäiden määrän Hierarkkiset menetelemät ovat raskaampia (O(n 2 ) O(n 2 log n)), deterministisiä ja antavat paremmat työkalut ryppäiden määrän valintaan

LOPPU to 21.2.2008: kertausta pe 22.2.2008: viimeiset laskuharjoitukset ti 26.2.2008: klo 9-12 sali A111: kurssikoe