Kmeans algoritam Analiza i implementacija na DFE platformi

  • Slides: 23
Download presentation
K-means algoritam Analiza i implementacija na DFE platformi Pavle Batuta 14/3206

K-means algoritam Analiza i implementacija na DFE platformi Pavle Batuta 14/3206

Uvod • K-means je data mining algoritam • Spada u tzv. clustering algoritme •

Uvod • K-means je data mining algoritam • Spada u tzv. clustering algoritme • Grupisanje podataka u klase • Klase su bazirane na sličnosti Pavle Batuta 14/3206 2/23

Ideja algoritma • Prostim rečima: podeliti/klasifikovati tačke u K grupa (klasa) na osnovu njihovih

Ideja algoritma • Prostim rečima: podeliti/klasifikovati tačke u K grupa (klasa) na osnovu njihovih atributa • K se zadaje unapred, kao pozitivan broj veći od nule • Kao dimenziju uzimamo broj atributa podataka • Grupisanje se radi na osnovu minimalne distance između tačke i odgovarajućeg centroida klase • Donekle slično kao k-Neareast Neigbour • Za razliku od prethodnog algoritam „uči“ da preraspoređuje tačke Pavle Batuta 14/3206 3/23

Sličnost i mera distance • Za određivanje sličnosti potrebna nam je mera distance •

Sličnost i mera distance • Za određivanje sličnosti potrebna nam je mera distance • Dobar izbor – Euklidovska distanca • Broj dimenzija jednak broju atributa objekta • Još bolje – kvadratna Euklidovska distanca • Prihvatljiva mera, a nema skupe operacije korenovanja Pavle Batuta 14/3206 4/23

Koraci algoritma • Ulaz: • Podaci u vidu tačaka (ukupno n) • Broj grupa

Koraci algoritma • Ulaz: • Podaci u vidu tačaka (ukupno n) • Broj grupa K • Izabrati početne predstavnike grupa (centroide) • Moguće je izabrati nasumično • Metoda najudaljenijeg • Prvi centroid se bira nasumično • Sledeći se bira da bude najudaljeniji od svih postojećih centroida Pavle Batuta 14/3206 5/23

Koraci algoritma • Ponavljati do konvergencije • Za svaku od n tačaka: • Naći

Koraci algoritma • Ponavljati do konvergencije • Za svaku od n tačaka: • Naći najbliži centroid (po izabranoj distanci) • Dodeliti tačku klasi kojoj pripada centroid • Za svaku od K klasa: • Proći sve tačke koje pripadaju klasi • Naći aritmetičku srednju vrednost • Postaviti novi centroid klase na srednju vrednost Pavle Batuta 14/3206 6/24

Koraci algoritma Pavle Batuta 14/3206 7/23

Koraci algoritma Pavle Batuta 14/3206 7/23

Primer: korak po korak 4 k 1 3 k 2 2 1 k 3

Primer: korak po korak 4 k 1 3 k 2 2 1 k 3 0 0 1 Pavle Batuta 14/3206 2 3 4 5 8/23

Primer: korak po korak 5 4 k 1 3 k 2 2 1 k

Primer: korak po korak 5 4 k 1 3 k 2 2 1 k 3 0 0 1 Pavle Batuta 14/3206 2 3 4 5 9/23

Primer: korak po korak 5 4 k 1 3 k 2 2 1 k

Primer: korak po korak 5 4 k 1 3 k 2 2 1 k 3 0 0 1 Pavle Batuta 14/3206 2 3 4 5 10/23

Primer: korak po korak 5 4 k 1 3 2 k 2 1 k

Primer: korak po korak 5 4 k 1 3 2 k 2 1 k 3 0 0 1 Pavle Batuta 14/3206 2 3 4 5 11/23

Prednosti i mane • Prednosti: • Skalabilnost, brza konvergencija • Mala složenost! • O(br_dimenzija

Prednosti i mane • Prednosti: • Skalabilnost, brza konvergencija • Mala složenost! • O(br_dimenzija * K * n * br_iter) gde • Obično K i dim znatno manje od n • Relativno jednostavan za imlementaciju • Uči na prethodnim primerima Pavle Batuta 14/3206 12/23

Prednosti i mane • Mane: • K mora biti unapred poznato! • Izbor K

Prednosti i mane • Mane: • K mora biti unapred poznato! • Izbor K nije trivijalan • Zavisi od seta podataka • Problem lokalnog minimuma • Algoritam konvergira ali može da se desi da se „zaglavi“ u lokalnom minimumu! • Ne znamo da li smo dobili najbolje rešenje Pavle Batuta 14/3206 13/23

Prednosti i mane • Mane: • Rezultat zavisi od početnog izbora centroida • Osetljiv

Prednosti i mane • Mane: • Rezultat zavisi od početnog izbora centroida • Osetljiv na prisustvo outlier-a • Radi samo sa realnim brojevima • Nije moguće primeniti opisne atribute Pavle Batuta 14/3206 14/23

Predlog ubrzanja: Maxeler Pavle Batuta 14/3206 15/23

Predlog ubrzanja: Maxeler Pavle Batuta 14/3206 15/23

Predlog ubrzanja: Maxeler • Reprogramabilne max kartice • Mogu značajno da ubrzaju algoritam •

Predlog ubrzanja: Maxeler • Reprogramabilne max kartice • Mogu značajno da ubrzaju algoritam • Ideja: pronaći paralelne poslove • Implementirati poslove u max kernelima Pavle Batuta 14/3206 16/23

Predlog ubrzanja: Maxeler • Nalaženje najbliže tačke u kernelu • Kernelu se prosledi stream

Predlog ubrzanja: Maxeler • Nalaženje najbliže tačke u kernelu • Kernelu se prosledi stream centroida i tačka • Dataflow mehanizam, podaci „cure“ kroz kernel • Na kraju se računa i update-uje minimalna vrednost Pavle Batuta 14/3206 17/23

Pavle Batuta 14/3206 18/23

Pavle Batuta 14/3206 18/23

Skaliranje rešenja • Rastojanja se mogu računati nezavisno • Praktično u paraleli je moguće

Skaliranje rešenja • Rastojanja se mogu računati nezavisno • Praktično u paraleli je moguće klasifikovati svaku od tačaka! • Ubrzanje zavisi od broja kernela koje je moguće mapirati na max mašinu Pavle Batuta 14/3206 19/23

Skaliranje rešenja • Bitno: treba pametno raspodeliti podatke u memoriji • Ako imamo M

Skaliranje rešenja • Bitno: treba pametno raspodeliti podatke u memoriji • Ako imamo M modula i N tačaka, tada će se klasifikacija završiti za ~ N/M * K ciklusa. Pavle Batuta 14/3206 20/23

Performanse: • Sa porastom broja ulaza, veći dobici • Ograničenje: memorija kartice • Preliminarni

Performanse: • Sa porastom broja ulaza, veći dobici • Ograničenje: memorija kartice • Preliminarni rezultati: 4 X do 12 X • Najbitnije: • Moguća dodatna optimizacija kernela • Još mesta za razmotavanje petlji • TODO: pomeranje centroida Pavle Batuta 14/3206 21/23

Primena: • Pošto se lako skalira čak i za velike setove podataka ima široku

Primena: • Pošto se lako skalira čak i za velike setove podataka ima široku primenu: • • • Market segmentation Computer vision Geostatika Astronomija Itd. Pavle Batuta 14/3206 22/23

Hvala na pažnji!

Hvala na pažnji!