You are on page 1of 23

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
• 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 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
• 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 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 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


Primer: korak po korak

4
k1
3

2
k2

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

4
k1
3

2
k2

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

4
k1
3

2
k2

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

4
k1
3

k2 k3
1

0
0 1 2 3 4 5
Pavle Batuta 14/3206 11/23
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 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 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
• 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 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
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 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 rezultati: 4X do 12X
• 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 primenu:
• Market segmentation
• Computer vision
• Geostatika
• Astronomija
• Itd.

Pavle Batuta 14/3206 22/23


Hvala na pažnji!

You might also like