Luentorunko keskiviikolle Hierarkkinen ryvästäminen

Samankaltaiset tiedostot
Hierarkkinen ryvästäminen

Luentorunko perjantaille

Hierarkkinen klusterointi

Algoritmit 1. Luento 13 Ti Timo Männikkö

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

Algoritmit 1. Luento 13 Ma Timo Männikkö

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

Datanäytteiden piirteiden skaalaus/normalisointi (1)

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

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

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

Kombinatorinen optimointi

Algoritmi on periaatteellisella tasolla seuraava:

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

805306A Johdatus monimuuttujamenetelmiin, 5 op

Rinnakkaistietokoneet luento S

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

Mallipohjainen klusterointi

4.3. Matemaattinen induktio

Algoritmit 1. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 2 Ke Timo Männikkö

(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ä.

Algoritmit 2. Luento 2 To Timo Männikkö

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

10. Painotetut graafit

Algoritmit 2. Luento 7 Ti Timo Männikkö

10. Painotetut graafit

Tarkennamme geneeristä painamiskorotusalgoritmia

Yksinkertainen alustusalgoritmi k:n keskiarvon ryvästysmenetelmää

Matematiikan tukikurssi

Algoritmit 1. Luento 12 Ti Timo Männikkö

13 Lyhimmät painotetut polut

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

Algoritmit 1. Luento 12 Ke Timo Männikkö

Paikkatiedon käsittely 6. Kyselyn käsittely

58131 Tietorakenteet Erilliskoe , ratkaisuja (Jyrki Kivinen)

Algoritmit 2. Luento 11 Ti Timo Männikkö

4. Joukkojen käsittely

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

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

Rinnakkaistietokoneet luento S

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

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

Malliratkaisut Demot

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

3.4 Peruutus (backtracking)

isomeerejä yhteensä yhdeksän kappaletta.

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

Algoritmit 2. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 14 Ke Timo Männikkö

Ohjaamaton oppiminen. Marko Salmenkivi. Johdatus koneoppimiseen, syksy 2008

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen)

3 Derivoituvan funktion ominaisuuksia

Kokonaislukuoptimointi

Numeeriset menetelmät

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

v 8 v 9 v 5 C v 3 v 4

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

Lineaarinen optimointitehtävä

Esimerkkejä kokonaislukuoptimointiongelmista

Stabilointi. Marja Hassinen. p.1/48

5. Keko. Tietorakenne keko eli kasa (heap) on tehokas toteutus abstraktille tietotyypille prioriteettijono, jonka operaatiot ovat seuraavat:

Algoritmit 1. Luento 10 Ke Timo Männikkö

Harjoitus 5 ( )

Fibonacci-kasoilla voidaan toteuttaa samat operaatiot kuin binomikasoilla.

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

Algoritmit 2. Luento 3 Ti Timo Männikkö

811120P Diskreetit rakenteet

Puhesynteesin perusteet Luento 5: unit selection -synteesi

= 5! 2 2!3! = = 10. Edelleen tästä joukosta voidaan valita kolme särmää yhteensä = 10! 3 3!7! = = 120

Kysymys: Voidaanko graafi piirtää tasoon niin, että sen viivat eivät risteä muualla kuin pisteiden kohdalla?

Algoritmit 2. Luento 3 Ti Timo Männikkö

Mukautuvat järjestämisalgoritmit

Algoritmit 1. Luento 14 Ke Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

Konvergenssilauseita

Partikkelit pallon pinnalla

Luku 8. Aluekyselyt. 8.1 Summataulukko

Algoritmit 2. Luento 13 Ti Timo Männikkö

811312A Tietorakenteet ja algoritmit, VI Algoritmien suunnitteluparadigmoja

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

Mitään muita operaatioita symbolille ei ole määritelty! < a kaikilla kokonaisluvuilla a, + a = kaikilla kokonaisluvuilla a.

Partikkelit pallon pinnalla

Topologia Syksy 2010 Harjoitus 9

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

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

Algoritmit 1. Luento 8 Ke Timo Männikkö

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

811120P Diskreetit rakenteet

Kevät 2003 Luennot: Timo Honkela, Krista Lagus Laskuharjoitukset: Vesa Siivola

Nopea kertolasku, Karatsuban algoritmi

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

DOB valmennus Data-analyysi. Koneoppiminen. CC by

4 Tehokkuus ja algoritmien suunnittelu

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

1 Reaaliset lukujonot

Kimppu-suodatus-menetelmä

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

58131 Tietorakenteet ja algoritmit (syksy 2015) Toinen välikoe, malliratkaisut

Transkriptio:

Luentorunko keskiviikolle 3.12.2008 Hierarkkinen ryvästäminen

Ryvästyshierarkia & dendrogrammi Hierarkkinen ryvästäminen tuottaa yhden ryvästyksen sijasta sarjan ryvästyksiä Tulos voidaan visualisoida puurakenteena, dendrogrammina Dendrogrammi voi auttaa hahmottamaan aineiston rakennetta Dendrogrammista voidaan eristää erilaisia ryvästyksiä Dendrogrammi tarjoaa informaatiota sopivan klusterien määrän valitsemiseksi

Esimerkki: dendrogrammi 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 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

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. Leikataan etukäteen kiinnitetyllä 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 Voidaan luonnollisesti käyttää myös K :n keskiarvon ryvästyksen yhteydessä mainittuja kriteerejä (kyynärpääkriteeri, MDL,...)

Esimerkki Valitaan suurin yhdistämisetäisyys d = 20 = K = 1 d = 10 = K = 2 d = 5 = K = 3 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

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 Koostavan hierarkkisen 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

Ryppäiden etäisyysfunktiot (1/3) Etäisyysfunktiota vaihtamalla saadaan seuraavat variantit: Lähinaapuriryvästys (nearest neighbor clustering, 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 Keskipisteryvästys (centroid clustering): d(c i, C j ) = d(r i, r j ), missä r i ryppään C i edustajavektori

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ä

Algoritmin aikavaativuus 1. Lähinnä toisiaan olevien ryppäiden liittäminen toisiinsa while-silmukka suoritetaan tasan n 1 kertaa, missä n on datapisteiden määrä 2. Toisiaan lähinnä olevien ryppäiden löytäminen: triviaali ratkaisu on käydä ryppäiden pareittaisten etäisyyksien taulukko kokonaan läpi joka askeleessa, jolloin vertailujen määrä iteraatiota kohti O(n 2 ) siis O(n 3 ) etäisyysvertailua koko algoritmin suorituksen aikana tämä voidaan pudottaa aikaan O(n 2 log n) tai O(n 2 ) ryppäiden etäisyysfunktiosta riippuen 3. Etäisyyksien päivittäminen Kun taulukoidaan ryppäiden pareittaiset etäisyydet, vain uuden ryppään etäisyydet vanhoihin täytyy päivittää ryppäiden liitosoperaation jälkeen yhden iteraation aikana O(n), koko suorituksen aikana O(n 2 ) etäisyyslaskuoperaatiota. operaatiot voidaan toteuttaa O(1) ajassa

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)

Parietäisyyksien nopea päivitys Kun klusterit C i ja C j yhdistetään, kuinka klustereiden väliset etäisyydet päivitetään? yhdistäminen: C i = C i C j päivitetään etäisyydet D ik, k j jos etäisyydet D ik ja D jk on taulukoitu, päivitys voidaan tehdä O(1) ajassa 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 + p jk D jk + p ij D ij p i D ii p j D jj p k D kk ), ijk 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ämien esimerkkiparien määrät. Entä keskipisteryvästys? Luennoija ei heti keksinyt O(1) päivitystä, mutta sellainen voi silti olla olemassa...

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) Hierarkkisesti muodostettu ryvästys C = {C 1,..., C K } on optimaalinen, jos d(c) d(c ) kaikilla C, C K ts. ei ole olemassa ryvästystä, 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

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 3, d 4 }}, 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