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

Samankaltaiset tiedostot
Luentorunko perjantaille

Ohjaamaton oppiminen. Marko Salmenkivi. Johdatus koneoppimiseen, syksy 2008

Luentorunko keskiviikolle Hierarkkinen ryvästäminen

Hierarkkinen ryvästäminen

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA)

Mallipohjainen klusterointi

Algoritmit 1. Luento 1 Ti Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 1. Luento 10 Ke Timo Männikkö

805306A Johdatus monimuuttujamenetelmiin, 5 op

Datanäytteiden piirteiden skaalaus/normalisointi (1)

Algoritmit 1. Luento 3 Ti Timo Männikkö

Esimerkkejä vaativuusluokista

Johdatus tekoälyyn. Luento : Koneoppiminen. Patrik Hoyer. [ Kysykää ja kommentoikaa luennon aikana! ]

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

Tiedonlouhinta rakenteisista dokumenteista (seminaarityö)

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

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi.

Algoritmit 1. Luento 12 Ti Timo Männikkö

4.0.2 Kuinka hyvä ennuste on?

Relevanttien sivujen etsintä verkosta: satunnaiskulut verkossa Linkkikeskukset ja auktoriteetit (hubs and authorities) -algoritmi

Algoritmit 2. Luento 12 To Timo Männikkö

Algoritmit 1. Luento 12 Ke Timo Männikkö

Tarkennamme geneeristä painamiskorotusalgoritmia

Algoritmit 1. Luento 11 Ti Timo Männikkö

Algoritmi on periaatteellisella tasolla seuraava:

Rinnakkaistietokoneet luento S

Etsintä verkosta (Searching from the Web) T Datasta tietoon Heikki Mannila, Jouni Seppänen

Numeeriset menetelmät

Algoritmit 2. Luento 13 Ti Timo Männikkö

Harjoitus 7: NCSS - Tilastollinen analyysi

Algoritmit 1. Luento 2 Ke Timo Männikkö

Algoritmit 2. Luento 8 To Timo Männikkö

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Datatähti 2019 loppu

Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion.

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta

Oppijan saama palaute määrää oppimisen tyypin

Rinnakkaistietokoneet luento S

Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion.

Esimerkki: Tietoliikennekytkin

Epäyhtälöt ovat yksi matemaatikon voimakkaimmista

Algoritmit 1. Luento 10 Ke Timo Männikkö

pisteet Frekvenssi frekvenssi Yhteensä

riippumattomia ja noudattavat samaa jakaumaa.

Joukot. Georg Cantor ( )

klusteroi data haluttuun määrään klustereita tee n-gram -mallit klustereista (tasoitus) estimoi sekoitteiden painokertoimet λ k

811312A Tietorakenteet ja algoritmit I Johdanto

JOHDATUS TEKOÄLYYN TEEMU ROOS

Numeeriset menetelmät TIEA381. Luento 8. Kirsi Valjus. Jyväskylän yliopisto. Luento 8 () Numeeriset menetelmät / 35

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

n! k!(n k)! n = Binomikerroin voidaan laskea pelkästään yhteenlaskun avulla käyttäen allaolevia ns. palautuskaavoja.

Verkon värittämistä hajautetuilla algoritmeilla

Mat Lineaarinen ohjelmointi

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

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS

Tekstuurintunnistuksen lyhyt oppimäärä. Ts. pari tapaa erottaa tiiliseinä pensaasta.

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

Tietorakenteet ja algoritmit - syksy

Pääkaupunkiseudun työmatkavirtojen analyysi ja visualisointi HSY paikkatietoseminaari

/1. MTTTP5, luento Normaalijakauma (jatkuu) Binomijakaumaa voidaan approksimoida normaalijakaumalla

ALGORITMIT & OPPIMINEN

P (X B) = f X (x)dx. xf X (x)dx. g(x)f X (x)dx.

Mittaustekniikka (3 op)

(b) Tarkista integroimalla, että kyseessä on todella tiheysfunktio.

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä.

Algoritmit 1. Demot Timo Männikkö

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:

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

Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi

1 Määrittelyjä ja aputuloksia

MS-C1340 Lineaarialgebra ja

30A02000 Tilastotieteen perusteet

P (A)P (B A). P (B) P (A B) = P (A = 0)P (B = 1 A = 0) P (B = 1) P (A = 1)P (B = 1 A = 1) P (B = 1)

pitkittäisaineistoissa

Yksinkertainen alustusalgoritmi k:n keskiarvon ryvästysmenetelmää

Tilastollinen aineisto Luottamusväli

E. Oja ja H. Mannila Datasta Tietoon: Luku 2

Otannasta ja mittaamisesta

Tässä luvussa mietimme, kuinka paljon aineistossa on tarpeellista tietoa Sivuamme kysymyksiä:

Algoritmit 2. Luento 12 Ke Timo Männikkö

MS-A0501 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

1. Tilastollinen malli??

Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa.

JOHDATUS TEKOÄLYYN TEEMU ROOS

Injektio. Funktiota sanotaan injektioksi, mikäli lähtöjoukon eri alkiot kuvautuvat maalijoukon eri alkioille. Esim.

811120P Diskreetit rakenteet

JOHDATUS TEKOÄLYYN TEEMU ROOS

Johdatus matematiikkaan

Laskennallinen data-analyysi II

Miten perustella, että joukossa A = {a, b, c} on yhtä monta alkiota kuin joukossa B = {d, e, f }?

Duaalisuus kokonaislukuoptimoinnissa. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki

Algoritmit 2. Luento 14 Ke Timo Männikkö

Transkriptio:

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

Ohjaamaton vs. ohjattu oppiminen Tähän mennessä kurssilla on käsitelty ohjattua oppimista: tavoitteena ennustaa piirrettä y, annettuna x. Tämä asetelma ei kuitenkaan sovi kaikkiin data-analyysitehtäviin, Joskus on tarpeen määritellä data-analyysitehtävä siten, että datajoukossa S = {x 1,..., x n } ei ole erikseen annettua ennustettavaa piirrettä y.

Ohjaamaton vs. ohjattu oppiminen Esimerkkejä tilanteista, jolloin ohjaamaton oppiminen tulee kyseeseen: 1. Joskus x-dataa on paljon, mutta y arvojen hankkiminen on liian kallista / vaivalloista / haitallista / vaarallista. 2. Joskus y on vaikeasti formalisoitavissa ja siten ennustustehtävä on vaikea määritellä, esim. mikä on relevantti documentti Google-haussa 3. Aina ei ole selvää, mikä ennustustehtävä pitäisi ratkaista ts. ei ole selvää mikä on ennustettava y piirre, ennen kuin dataan tutustutaan enemmän 4. Ja joskus lopultakin halutaan vain tietää, mitä mielenkiintoista data kätkee sisäänsä...

Esimerkki: prosessinvalvonta Tarkastellaan tuotantoprosessia, jota valvotaan jatkuvilla mittauksilla Haluttaisiin rakentaa työkalu, joka mittauksien perusteella antaisi varoituksen prosessin ajatumisesta pois halutusta toimintatilasta Luokittelijan oppiminen edellyttäisi esimerkkejä normaalista ja epänormaalista toimintatilasta. Epänormaalia toimintatilaa edustavien esimerkkien generoiminen tarkoittaa tuotantomenetyksiä eli kallista hintaa Olisi suotavaa rakentaa työkalu pelkästään normaalitilaa kuvaavien esimerkkien perusteella

Esimerkki: Prosessinvalvonta Prosessinvalvontatehtävä voidaan ratkaista keräämällä mittausdataa normaaleista toimintaoloista tulkitaan mittausproili, joka poikkeaa kaikista prototyypeistä "liikaa" Mittauksista saadut proilit pyritään ryhmittelemään samankaltaisiin ryppäisiin Kutakin ryvästä asetetaan vastaamaan prototyyppiproili Poikkeustilanteeksi

Esimerkki: kielimallit Tilastollisessa konekääntämisessä tarvitaan kielimalleja huolehtimaan tuotetun käännöksen sujuvuudesta ja oikeakielisyydestä Tavallisesti käytetään peräkkäisiin sanakolmikoihin perustuvia Markov-malleja P(s 1 s n ) = P(s 3 s 2 s 1 ) P(s 4 s 3 s 2 ) P(s n s n 1 s n 2 ), missä s i ovat lauseen sanat. Malli ennustaa siis todennäköisyyden kullekin lauseelle

Esimerkki: kielimallit Kielimalli P(s 1 s n ) = P(s 3 s 2 s 1 ) P(s 4 s 3 s 2 ) P(s n s n 1 s n 2 ), voidaan oppia yksinkertaisesti laskemalla sanakolmikkoja suuresta kohdekielen tekstiaineistosta Google Language model on rakennettu keräämällä tätä tietoa www:stä usean DVD:n verran Luokittelutehtävänä ongelma on vaikeampi: aitoja negatiivisia esimerkkejä, "huonoa kieltä", on vaikea hankkia

Esimerkki: tiedon louhinta NBA-koripalloliigassa pidetään tarkkaa kirjaa pelitapahtumista ja pelaajien tekemisistä Tuloksena on suuri tietokanta, josta voidaan etsiä riippuvuuksia, jotka jäisivät ehkä muuten huomaamatta Advanced Scout -järjestelmä 1 etsii sääntöjä kuten "Kun pelaaja X on kentällä, pelaajan Y heittotarkkuus putoaa 75 prosentista 30 prosenttiin" Tämän tyyppistä data-analyysia käsitellään lisää kurssilla "Tiedonlouhinta". 1 Bhandari I., Colet, E., Parker, J., Pines Z., Pratap R., Ramanujam K. (1997): Advanced Scout: datamining and knowledge discovery in NBA data. Data Mining and Knowledge Discovery, 1 (1), 121125

Signaalien erottaminen Havaitaan signaali, joka on yhdistelmä useasta riippumattomasta lähteestä Tavoitteena on erottaa lähdesignaalit toisistaaan Riippumattomien komponenttien analyysi (ICA) on eräs menetelmä tälläisen ongelman ratkaisemiseksi www.cis.hut.fi/projects/ica/cocktail/cocktail_en.cgi

Esimerkki: luonnontieteellinen data-analyysi Tieteellisessä data-analyysissä usein halutaan löytää datasta uusia riippuvuuksia Kuvassa on tutkittu nisäkkäiden esiintymistä 50x50 km ruuduissa Kutakin ruutua vastaa 124-ulotteinen binäärivektori (laji "i"esiintyy/ei esiinny) Väritys kuvaa samankaltaisten lajiproilien esiintymäalueita

Datan esikäsittelystä Tähän asti kurssilla data on oletettu tupsahtaneeksi jostain sopivasti esikäsiteltynä numeerisiksi piirrevektoreiksi Käytännössä data ilmenee kuitenkin moninaisissa esitysmuodoissa (kuva, teksti, signaalit, monivalinta) Kaksi lähestymistapaa datan esitysmuotojen suhteen: Esikäsittely + yleiskäyttöinen oppimisalgoritmi, syötteenä (yleensä numeerinen) piirrevektori Esitysmuotospesinen oppimisalgoritmi; oma menetelmä kuville, oma tekstille, jne. Me keskitymme ensimmäiseen lähestymistapaan

Raakadatasta piirreesitykseen Raakadatamme tarvitsee esikäsittelyä, jos syötteet eivät ole vektori/taulukkomuodossa (esim. kuvat, teksti, signaalit) syötteen absoluuttiset indeksit eivät ole kiinnostavia tai eivät pysy samoina yli esimerkkien. syötemuuttujat eivät ole yhteismitallisia (esim. kyselytutkimus, jossa erityyppisiä kysymyksiä) syötteet eivät ole reaalilukuja (mikäli oppimisalgoritmimme hyväksyy vain numeerisia syötteitä) Halutaan tuottaa piirre-esitys, jotka pystyvät mittaamaan merkityksellisiksi ajateltujen hahmojen tai ominaisuuksien esiintymistä esimerkeissä.

Esikäsittely ja etäisyysmitat Ohjatun oppimisen menetelmät ovat vahvasti riippuvaisia datan esitysmuodosta Tavallisimmin menetelmät perustuvat datapisteiden välisen etäisyyden mittaamiselle Tavallisimmat etäisyysmitat sisältävät implisiittisen oletuksen piirteiden yhteismitallisuudesta Euklidinen etäisyys d(x, z) = d j=1 (x j z j ) 2, Manhattan-etäisyys d(x, z) = d j=1 x j z j, Hamming-etäisyys d(x, z) = d j=1 1 x j z j Datan esikäsittelyn yksi tavoite on saada data sellaiseen muotoon, että etäisyyksiä voidaan mitata mielekkäästi

Esimerkki: nominaaliarvoiset syötemuuttujat Monissa data-analyysitehtävissä data ei ole valmiiksi numeerista, vaan joudumme muuntamaan datan numeeriseksi käyttämällä piirrefunktioita Oletetaan syötemuuttuja x j V j, missä arvojoukko V j = {v 1,..., v r } on nominaalinen (alkioilla ei järjestysrelaatiota) Muodostetaan piirrefunktio muuttujan x j kullekin mahdolliselle arvolle v h v j : φ j,vh (x) = { 1, x = v j 0, x v j

Esimerkki: nominaaliarvoiset syötemuuttujat esim. klassisessa 'Mushrooms' (sienien luokittelu) aineistossa muodostettaisiin piirrefunktiot φ capshape,bell, φ capshape,conical,... 1. cap-shape: bell=b,conical=c,convex=x,at=f, knobbed=k,sunken=s 2. cap-surface: brous=f,grooves=g,scaly=y,smooth=s 3. cap-color: brown=n,bu=b,cinnamon=c,gray=g,green=r, pink=p,purple=u,red=e,white=w,yellow=y 4. bruises?: bruises=t,no=f

Esikäsittely: järjestysasteikon muuttujat Esim. monivalintakysymys (täysin samaa mieltä, jokseenkin samaa mieltä, jokseenkin eri mieltä, täysin eri mieltä) Muunnamme muuttujan numeeriseksi muuttujaksi, jonka keskiarvo 0 ja hajonta on "pieni" Kaksi tapaa: 1. φ j (x) = rank j (x j ) rank j (x median ), missä rank j kertoo arvon järjestykseen j:nne muuttujan arvoalueessa ja x median on arvoalueen mediaani 2. φ j (x) = rank(x j ) rank(median) / rank(maximum) rank(minimum) Jälkimmäinen tapa on suositeltava, jos arvoalue on suuri

Esimerkki: kuvanhaku Tavoite: Halutaan etsiä järvimaisemia kuvatietokannasta Piirreesityksenä kuvien värihistogrammit: φ i (x) on värisävyn i pikselien lukumäärä kuvassa x Pikselien sijainnista ei olla kiinnostuneita: kuvakulman kiertäminen (rotation) tai siirtäminen (translation) suhteen ei vaikuta

Esimerkki: tekstinhaku Tehtävä: Halutaan etsiä uutistietokannasta artikkelit, jotka kertovat David Beckhamin siirtymisestä Real Madridista LA Galaxyyn Piirreesityksenä sanasäkki (bag of words): φ Beckham (x) kertoo montako kertaa Beckham esiintyy dokumentissa x; sanan esiintymien sijainnista ei olla kiinnostuneita. φ Beckham (x) = 4, φ Real (x) = 1, φ Madrid = 1, φ Galaxy = 3, φ BBC = 2,...

Esikäsittely: numeerinen data Myös numeerinen data (joko raakadata tai em. tavoin piirreesitykseen muunnettu) voi kaivata esikäsittelyä, ongelmia voivat aiheuttaa: Erilaiset arvoalueet/yksiköt: piirre x 1 mitattu kilogrammoina, x 2 grammoina, euklidisessa etäisyydessä grammoina mitattu piirre saa 1000-kertaisen painoarvon Poikkeava varianssi: piirre x 1 vaihtelee absoluuttisesti vähemmän kuin piirre x 2, tällöin pieni muutos x 1 :ssä voi olla yhtä tärkeää kuin suuri muutos x 2 :ssä

Muuttujien esikäsittely: numeeriset piirteet Piirteiden erilaisista skaaloista ja variansseista päästään eroon normalisoimalle 1. Keskitys ja jakaminen keskihajonnalla: φ j (x) = (x j µ j )/σ j, µ j on piirteen j keskiarvo datajoukossa, σ j keskihajonta; käy kaikille numeerisille piirteille 2. Jos arvot sijoituvat väillle [x min, x max ] φ j (x) = (x j x min )/(x max x min )

Johdetut piirteet Piirteille voi tehdä myös muita muunnoksia: Logaritmipiirre: φ j (x) = log x; hyödyllinen jos piirteellä on ekponentiaalisesti suurempi vaihtelu kuin muilla piirteillä Polynomipiirteet: φ j (x) = x j ; mahdollistaa polynomien esittämisen Gaussiset piirteet: φ j (x) = exp ( (x µ j ) ); 2 2s 2 piirrefunktion keskiarvoa µ j lähellä olevat arvot x painavat enemmän Sigmoidipiirteet: φ j (x) = σ( x µ j s ), missä σ(a) = 1 1+exp( a) ; keskiarvoa µ j pienemmät arvot vaikuttavat negatiivisesti, suuremmat positiivisesti, muutos suurin lähellä keskiarvoa.

Etäisyysfunktion räätälöinti Esikäsittelyn sijaan vaihtoehtoinen tapa käsitellä heterogeenistä dataa on räätälöidä etäisyysfunktion laskenta sopivaksi kullekin datatyypille. Tällöin dataa ei muunneta numeeriseen muotoon, vaan datapisteiden etäisyyttä laskettaessa käytetään datatyyppikohtaista etäisyysmittaa. Tehdään kullekin piirretyypille oma etäisyysfunktionsa. esim. seuraavasti Numeeriset piirteet: d(x j, z j ) = (x j z j )/σ j Järjestysasteikon piirteet d(x j, z j ) = rank(x j ) rank(z j ) / rank(maximum) rank(minimum) Nominaaliasteikon piirteet: d(x j, z j ) = 1 {xj z j }

Rakenteiset piirteet Muuttujat voivat olla muutakin kuin yksittäisiä arvoja, niillä voi olla sisäinen rakenne Miten mitata etäisyyttä seuraavissa tapauksissa (Harjoitustehtävä): Osajoukko: x j { kehärata, kehä II, keskustatunneli, länsimetro} Järjestetty joukko: x j = (1. länsimetro, 2. kehärata, 3. kehä II, 4. keskustatunneli )

Ryvästäminen (klusterointi, engl. clustering) Ryvästämisessä tehtävä on jakaa data erillisiin osajoukkoihin siten, että kukin osajoukko on niin homogeeninen kuin mahdollista Ryvästämismenetelmän komponentit ovat Kustannusfunktio, joka mittaa esimerkkiryppäiden homogeenisuuden Valintakriteeri ryppäiden määrälle Algoritmi, jolla esimerkit jaetaan ryppäisiin tai vaihtoehtoisesti algoritmi, jolla ryppäät koostetaan

Kaksi ryvästämistehtävää

Ryvästämismenetelmät Ryvästämismenetelmät voidaan jakaa karkeasti kolmeen joukkoon: Osittamiseen perustuvat menetelmät, joissa ryppäiden määrä on ennalta kiinnitetty luku k, ja tehtävä on jakaa data ryppäisiin siten, että homogeenisyys maksimoituu Hierarkkiset menetelmät toimivat vähittäin liittämällä keskenään samankaltaisia ryppäitä toisiinsa Todennäköisyyssekoitemalleihin (engl. probabilistic mixture model) perustuva ryvästäminen

Ryvästyksen kustannusfunktioista Ryvästyksen onnistumista mitataan tyypillisesti kustannusfunktioilla Kustannusfunktiot määritellään lähes poikkeuksessa datapisteiden välisten etäisyyksein perusteella Ryppäiden yhteenlasketun sisäisen vaihtelun (within cluster variation) minimoiminen on yksi mahdollisuus F (C) = K wc(c k ) k=1 Toimii mielekkäästi vain, jos ryppäiden määrä on kiinnitetty edeltäkäsin. Miksi?

Ryppään edustajavektorin määrittely Määrittelemme seuraavassa kustannusfunktion, joka perustuu ryppäiden C 1,..., C K edustajavektoreihin (keskipisteisiin tai keskimmäisiin edustajiin) r 1,..., r K Kukin r k voi olla syöte, joka on jollakin tapaa keskeinen ryppään edustaja, tällöin r k C k Jos syötteet ovat jatkuva-arvoisia, keskiarvon ottaminen voi olla mielekästä: r k = 1 n k x x C k

Ryppään sisäinen vaihtelu Yksinkertainen tapa mitata ryppäiden sisäistä vaihtelua on laskea yhteen kunkin ryppään syötteiden etäisyydet ryppään edustajavektoriin wc(c) = K wc(c k ) = k=1 K k=1 x C k d(x, r k ) wc(c) pyritään minimoimaan, eli ryvästys on siis sitä parempi, mitä lähempänä syötteet ovat ryppään edustajavektoria Mittaa kaikkia ryppäitä yhtä aikaa, joten joukossa voi olla "huonojakin"ryppäitä, jos "hyviä"on tarpeeksi

Osittamiseen perustuva ryvästys Annettuna syötejoukko S = {x 1,..., x n }, ja kokonaisluku K, etsi syötejoukon ositus K yhteispisteettömään osajoukkoon C = {C 1,..., C K } (kukin syöte x i D kuuluu täsmälleen yhteen osajoukkoon C j ) jotka ovat mahdollisimman homogeenisia Homogeenisuutta mitataan kustannusfunktiolla F (C), paras ryvästys on se, joka minimoi kustannusfunktion C = argmin C F (C)

Osittamiseen perustuva ryvästys Käytännössä parhaan ryvästyksen löytäminen on laskennallisesti erittäin raskasta kun K=2, erilaisia klusterointeja on 2 S 1 kappaletta!) mielekkäille arvotusfunktioille NP-kova ongelma, joten ei toivoa tehokkaasta täsmällisestä ratkaisualgoritmista Ongelma ratkaistaan käytännössä heuristisesti

K:n keskiarvon ryvästys (K-means clustering) K:n keskiarvon ryvästys on iteratiiviseen parantamiseen perustuva ryvästysmenetelmä. Aloitetaan satunnaisesta ryvästyksestä, ja muutetaan ryvästystä vaihettain siten, että kustannusfunktion arvo pienenee joka askeleessa Jatketaan kunnes ryvästys ei enää muutu

Algoritmi (K:n keskiarvon ryvästys) Algorithm K -means(s,k) % alusta keskipisteet r k = satunnainen syöte joukosta S, kaikilla k = 1,..., K ; % muodosta ryppäät k(x) = argmin K k=1 d(x, r k), kaikilla x S C k = {x k(x) = k}, kaikilla k = 1,..., K while muutoksia ryvästyksessä do % laske uudet keskipisteet: r k = 1 C k x, kaikilla k x C k = 1,..., K % muodosta ryppäät: k(x) = argmin K k=1 d(x, r k) kaikilla x S C k = {x k(x) = k} kaikilla k = 1,..., K end while

K-means simulaatio: Iris

K-means -algoritmin pysähtyminen Askeltavien algoritmin pysähtyminen ei ole itsestään selvää, periaatteessa voisi olla mahdollista että algoritmi jää oskilloimaan eri ryvästysten välillä. Voidaan kuitenkin osoittaaa, että K-means -algoritmi pysähtyy lokaaliin minimiin. (Todistus taululla, tulee myös kurssin kotisivulle)

Aikavaativuus Algoritmi toimii ajassa O(KnI ), missä I on iteraatioiden määrä (while-silmukka) Yhden iteraation vaativuus O(Kn) seuraa argmin-operaation suorittamisesta: kutakin n syötettä verrataan kuhunkin K keskipisteeseen Iteraatioiden määrä I riippuu syötejoukosta ja siitä, miten aloituspisteet alustetaan. Käytännössä on havaittu, että tarvittavien iteraatioiden määrä on pieni Yllä olevassa jätetään etäisyyksien d(x, y) laskennan kustannus huomiotta. Tyypillisesti kustannus on luokkaa O(d), missä d on syötteen piirteiden määrä.

Algoritmin ongelmia: lokaali minimi Vaikka algoritmi pysähtyykin, saatu ratkaisu on herkkä ryppäiden keskipisteiden alustuksen suhteen: algoritmi päätyy herkästi lokaaliin minimiin, jos keskipisteet alustetaan "epäonnekkaasti" Tavallisin ratkaisu ongelmaan on suorittaa algoritmi useaan kertaan eri alkuasetuksilla ryppäiden keskipisteille ja valita tuloksista paras Edistyneempi menetelmä on nk. simuloitu jäähdytys (simulated annealing), jossa algoritmi voi välillä huonontaakin arvotusfunktion arvoa päästäkseen ulos lokaalista minimistä. Haittapuoli on suurempi suoritusaika.

Tulosten visualisointi: rinnakkaiset koordinaatit ongelma: miten klusteroinnin tuloksia visualisoidaan kun data on moniulotteista? yksi ratkaisu: rinnakkaiset koordinaatit (parallel coordinates) tulostuksessa yksi käyrä vastaa yhtä datapistettä (tai vaikkapa kunkin klusterin keskipistettä) eri klusteriin kuuluminen voidaan koodata viivan värillä 2 data 1.5 1 parallel coordinate plot 1 2 3 x 3 1 0 1 2 2 0 x 2 2 1 0 x 1 1 2 Coordinate Value 0.5 0 0.5 1 1.5 1 2 3 Coordinate

Miten valita ryppäiden määrä K? Mallinvalintaongelma (vrt. ohjattu oppiminen) Teoria on valitettavasti vielä suhteellisen kypsymätöntä Ratkaisuvaihtoehtoja Ryppäiden määrän kasvattamisesta sakottaminen, erilaisia kriteerejä esim. Minimum Description Length, MDL: Valitaan ryvästys, joka "pakkaa"datan parhaiten, kun datan kuvaus on ryppäiden keskipisteet + erotusvektori kullekin datapisteelle lähimpään keskipisteeseen erotusvektorit koodataan siten, että lyhyet vektorit saava lyhyen koodin Ryvästyksen stabiilisuus: jos ryppäiden määrä on "oikea", ryvästyksen ei pitäisi muuttua keskimäärin "paljoa", kun opetusaineistoa muutetaan vähän

Miten valita ryppäiden määrä K? "Yritys-ja-erehdys -menetelmä": kokeillaan eri arvoja K = 1, 2,..., n kunnes ryppäiden sisäinen varianssi on riittävän pieni Jos datassa on optimaalinen K, sisäinen varianssa pienenee nopeasti ryppäiden määrillä < K ja sen jälkeen hitaasti Kyynärpääkriteeri x 2 10 5 0 5 10 10 5 0 x 1 5 10 J 2500 2000 1500 1000 500 0 2 4 6 8 10 K