10 Klasterovanje. K-meansPermalink

Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

Istrazivanje podataka 1 - vezbe 8, 2020.

Primenom klasterovanja nad skupom podataka vrsi se grupisanje instanci sa ciljem da instance
jedne grupe budu sto slicnije, a sto udaljenije od instanci iz drugih grupa. Jedna grupa instanci
dobijena klasterovanjem naziva se klaster.

Jedan od najpoznatijih algoritama klasterovanja je algoritam K-sredina.

1 Algoritam: K-sredina

Algoritam K-sredina pripada grupi algoritama klasterovanja koji su zasnovani na reprezenta-


tivnim predstavnicima. Svaki klaster se opisuje preko svog predstavnika - centroida.
Pronalazak klastera u algoritmu K-sredina je iterativni proces racunanja centroida za svaki
klaster i dodele svake instance klasteru cijem centroidu je najslicnija (najbliza). U jednoj
iteraciji se prvo svaka instanca dodeljuju klasteru sa cijim centroidom je najslicnija, a zatim se
za svaki klaster centroid azurira na osnovu instanci koje su mu dodeljene u toj iteraciji.
Za algoritam K-sredina potrebno je denisati

• parametar K - broj zeljenih klastera

• meru bliskosti (mera slicnosti ili razlicitosti) koja se koristi za racunanje bliskosti izmedu
instance skupa i centroida klastera. Ako se koristi mera sli cnosti, instanca se dodeljuje
klasteru sa cijim centroidom ima najvecu slicnost, odnosno vrednost mere bliskosti je
najveca, a ako se koristi mera razlicitosti, instanca se dodeljuje klasteru sa cijim
centroidom ima najmanju razlicitost, odnosno vrednost mere bliskosti je najmanja.

• inicijalne centroide. Mogu biti npr. nasumicno izabranih k instanci iz skupa. Razlicitim
izborom inicijalnih centroida mogu se dobiti razliciti rezultati klasterovanja.

Algoritam 1 K-sredina
1: Odrediti inicijalne centroide+ za k klastera.
2: Svaku instancu dodeliti najblizem klasteru koriscenjem mere bliskosti.
3: Za svaki klaster azurirati centroid na osnovu dodeljenih instanci tom klasteru.
4: Ponavljati korake 2 i 3 dok se ne ispuni uslov: nijedan centroid se nije promenio u odnosu
na prethodnu iteraciju.

Algoritam K-sredina dalje najbolje rezultate za globularne podatke, a lose za klastere proizvolj-
nog oblika (neglobularnog), razlicitih gustina ili velicina.

1
1.1 Zadatak 1
Algoritmom K-sredina identikovati 3 klastera u sledecim podacima. Pri tom, koristiti euklid-
sko rastojanje. Za polazne centroide uzeti prve tri instance.

instanca X Y Z
i1 1 0 2
i2 2 0 0
i3 -3 -1 1
i4 -4 -2 2
i5 0 4 9
i6 1 5 9

Znacenje oznaka koje se koriste u resenju:


ci - centroid klastera i
Ci - instance u klasteru i

Iteracija I

Kako su prve tri instance izabrane za centoride klastera, za njih nema potrebe racunati rasto-
janje do centoida jer je dist(ci , ci ) = 0, tako da ce biti izracunata samo rastojanja za instance
i4 , i5 i i6 do izabranih centroida.

U tabeli 1 je prikazana matrica rastojanja izmedu instanci i inicijalnih centroida. Za svaku


instancu je podebljano rastojanje do najblizeg centroida i njegovom klasteru se instanca dode-
ljuje.

centroid i1 i2 i3 i4 i5 i6
c1 0 5,4 8,1 8,6
c2 0 6,6 10 10,3
c3 0 1,7 9,9 10,8

Tabela 1: Matrica rastojanja izmedu instanci i centroida za iteraciju 1

Nakon I iteracije podela instanci po klasterima je:

• C1 : i1 , i5 , i6

• C2 : i 2

• C3 : i3 , i4

Za svaki klaster se azuriraju centroidi na osnovu dodeljenih instanci, tako sto se za svaki atribut
racuna srednja vrednost koju imaju instance klastera.
Novi centroidi su:
i1 +i5 +i6
• c1 = 3
= (0, 67; 3; 6, 67)

• c2 = i2 = (2; 0; 0)
i3 +i4
• c3 = 2
= (−3, 5; −1, 5; 1, 5)

2
Iteracija II

U tabeli 2 je prikazana matrica rastojanja izmedu instanci i azuriranih centroida. Za svaku in-
stancu je podebljano rastojanje do najblizeg centroida i njegovom klasteru se instanca dodeljuje
u ovoj iteraciji.
Tabela 2: Matrica rastojanja izmedu instanci i centroida za iteraciju II

centroid i1 i2 i3 i4 i5 i6
c1 5,6 7,4 7,8 8,3 2,6 3,1
c2 2,2 0 5,2 6,6 10 10,3
c3 4,8 5,9 0,9 0,9 9,9 10,9

Nakon II iteracije podela instanci po klasterima je:


• C1 : i5 , i6
• C2 : i1 , i2
• C3 : i3 , i4
Za svaki klaster se azuriraju centroidi na osnovu dodeljenih instanci, tako sto se za svaki atribut
racuna srednja vrednost koju imaju instance klastera.
Novi centroidi su:
i1 +i5 +i6
• c1 = 3
= (0, 5; 4, 5; 9)
i1 +i2
• c2 = 2
= (1, 5; 0; 1)
i3 +i4
• c3 = 2
= (−3, 5; −1, 5; 1, 5)
Iteracija III

U tabeli 3 je prikazana matrica rastojanja izmedu instanci i azuriranih centroida. Za svaku in-
stancu je podebljano rastojanje do najblizeg centroida i njegovom klasteru se instanca dodeljuje
u ovoj iteraciji.
Tabela 3: Matrica rastojanja izmedu instanci i centroida za iteraciju III

centroid i1 i2 i3 i4 i5 i6
c1 8,3 10,2 10,3 10,6 0,7 0,7
c2 1,1 1,1 4,6 5,9 9,1 9,4
c3 4,8 5,9 0,9 0,9 9,9 10,9

Nakon III iteracije podela instanci po klasterima je:


• C1 : i5 , i6
• C2 : i1 , i2
• C3 : i3 , i4
Primetiti da je podala instanci po klasterima ista u II i III iteraciji, zbog cega nece doci do
promene u vrednostima centroidima, i time je klasterovanje zavrseno.

3
2 Kvalitet klasterovanja

2.1 Suma kvadrata greske (SSE - sum of the squared error)


Kada se kao mera bliskosti koristi rastojanje u Euklidskom prostoru, za evaluaciju klasterovanja
algortimom K-sredina cesto se koristi mera suma kvadrata greske (SSE )
K X
X
SSE = dist(ci , x)2
i=1 x∈Ci

gde je

• x instanca skupa

• Ci klaster

• ci centroid klastera Ci

Cilj je da SSE bude sto manja.

2.2 Silueta koecijent, eng. Silhouette coecient


Silueta koecijent je mera koliko su instance grupisane sa instancama koje su slicne njima
samima. Prvo se silueta koecijent racuna za svaku instancu po formuli

b−a
s=
max(a, b)

gde je

• a - prosecno rastojanje izmedu instance i ostalih instanci u istom klasteru

• b - prosecno rastojanje izmedu instance i svih instanci iz najblizeg susednog klastera

Silueta koecijent za ceo skup je prosecna vrednost koecijenata za pojedinacne instance. Vred-
nost silueta koecijenta je izmedu [-1,1] pri cemu je

• -1 za neispravno grupisanje

• +1 za gusto grupisanje

Vrednost koecijenta je veca kada su klasteri gusti i dobro razdvojeni.

3 K-sredina u biblioteci scikit-learn

Algoritam K-sredina je implementiran klasom sklearn.cluster.KMeans. Mera bliskosti je Eu-


klidsko rastojanje. Klasa ima

• parametre

 n_clusters - broj klastera, default=8


 init - metod za inicijalizaciju centroida, (k-means++, random )

4
∗ k-means++ - inicijalni centroidi se biraju tako da budu generalno udaljeni jedan
od drugog
∗ random - inicijalni centroidi se nasumicno biraju
 n_init - koliko puta ce algoritam K-sredina biti izvrsen sa razlicitim inicijalnim cen-
toridima. Bira se klasterovanje sa najmanjom sumom kvadrata rastojanja instanci
do najblizeg centroida (vrednost atributa inertia_ ).
 max_iter - maksimalan broj iteracija pri klasterovanju. Jedan od uslova za ranije
zaustavljanje klasterovanja.
 tol - tolerancija za promenu sume kvadrata greske. Ako je promena u dve uzastopne
iteracije manja od tolerencije, klasterovanje se zaustavlja. Jedan od uslova za ranije
zaustavljanje klasterovanja.

• atributi

 cluster_centers_ - kooridinate centroida


 labels_ - oznake klastera kojima su instance dodeljene
 inertia_ - suma kvadrata rastojanja instanci do najblizeg centroida
 n_iter_ - broj izvrsenih iteracija

• metode

 t - izvrsavanje k-sredina klasterovanja


 t_predict - izvrsavanje k-sredina klasterovanja i dodela oznake klastera svakoj
instanci
 predict - dodela oznake klastera svakoj instanci
Primer 1: Dat je skup dogs koji ima atribute:
• breed - rasa psa

• height - visina psa

• weight - tezina psa

Primenom algoritma K-sredina izvrsiti klasterovanje za 2, 3 i 4 klastera na osnovu visine i tezine


pasa.
Resenje: k_means.py

4 K-sredina u alatu IBM SPSS Modeler

4.1 Transformacija atributa



Cvor za algoritam K-sredina u alatu IBM SPSS Modeler se zove K-mean. U okviru cvora
K-mean prvo se vrsi priprema atributa skupa za algoritam kako bi svaki atribut imao isti
uticaj pri racunanju euklidskog rastojanja:

• Numericki atributi
Sklariraju se vrednosti svakog numerickog atributa na opseg [0, 1] formulom

5
xi −xmin
xi 0 = xmax −xmin

• Kategoricki atributi
Za svaku kategoriju u kategorickom atributu se pravi binarni atribut. U binarnom
q atri-
butu za svaku kategoriju se instanciama te kategorije dodeljuje vrednost 2 , a ostalim
1

instancama 0.

Ako se vrednost T kodira sa 1, a F sa 0 (sto je najcesci slucaj) tada kategoricki atributi


iz originalnog skupa imaju veci uticaj pri racunanju euklidskog rastojanje izmedu dve in-
stance od numerickih atributa koji nakon transformacije imaju vrednosti u opsegu [0,1].
Npr. neka poredimo dve osobe prema duzini kose i velicini garderobe sa mogucim vred-
nostima S, M, L. Nakon transformacije originalnog skupa, atribut duzina kose ce imati
vrednosti u opsegu [0,1], a umesto atributa velicina odece bice tri binarna atributa S, M
i L. Ako se u binarnim atributima za kodiranje T /F koriste vrednosti 1/0 pri poredenju
osobe sa najkracom kosom (duzina je 0) koja nosi velicinu L (dalje u tekstu je oznacena
sa O1) i osobe sa najduzom kosom (duzina je 1) koja nosi velicinu M (dalje u tekstu je
oznacena sa O2), rastojanje je
p
dist(O1, O2) = (O1duzina − O2duzina )2 + (O1S − O2S )2 + (O1M 2
√ − O2M ) + (O1L − O2L ) =
2
p √
(0 − 1)2 + (0 − 0)2 + (0 − 1)2 + (1 − 0)2 = 1 + 0 + 1 + 1 = 3
te originalan atribut velicina garderobe ima uticaj kao dva numericka atributa.
q
Ako se u binarnim atributima za kodiranje T /F koriste vrednosti 12 /0 rastojanje je
p
dist(O1, O2) = (O1duzina − O2duzina )2 + (O1S − O2S )2 + (O1M − O2M )2 + (O1L − O2L )2 =
√ √ √
r q q p
(0 − 1) + (0 − 0) + (0 − 2 ) + ( 12 − 0)2 = 1 + 0 + 24 + 24 = 2
2 2 1 2

te originalan atribut velicina garderobe ima isti uticaj kao numericki atribut.

4.2 Algoritam K-sredina


Koraci
1. Racunaju se inicijalni centroidi za k klastera.

2. Svaka instanca se dodeljuje najblizem klasteru koriscenjem euklidskog rastojanja.

3. Za svaki klaster se azurira centroid na osnovu dodeljenih instanci tom klasteru.

4. Ponavljaju se koraci 2 i 3 dok se ne ispuni jedan od uslova:

• Svi centroidi su se pomerili za manje od zadate tolerancije greske.


• Izvrsen je maksimalan broj iteracija.

Za racunanje udaljenosti koristi se kvadrat euklidskog rastojanja.

6
4.2.1 Inicijalni centroidi
Za odredivanje inicijalnih centroida primenjuje se maxmin algoritam:

1. Prva instanca u skupu se postavlja za centroid prvog klastera.

2. Za svaku instancu skupa se racuna rastojanje do denisanih centroida klastera.

3. Pronalazi se najudaljenija instanca od denisanih centroida i ona se dodaje kao novi


centroid.

4. Ponavljaju se koraci 2 i 3 dok se ne denise k inicijalnih centroida.

4.2.2 Azuriranje centroida klastera


Za svaki klaster Cj se centroid azurira na kraju svake iteracije po formuli:
P nj
xqi (j)
cqj = i=1
nj

gde je

• nj broj instanci u klasteru Cj

• xqi (j) je vrednost q. transformisanog atributa instance i koja je dodeljena klasteru Cj

4.3 Parametri algoritma K-sredina


• Parametri cvora K-means u odeljku Model

 Use partitioned data - ukoliko je izvrsena podela podataka na trening i test skup, za
klasterovanje se koristi samo skup za treniranje
 Specied number of clusters - broj zeljenih klastera
 Generate distance eld - cvor sa modelom klasterovanja, koji se dobija kao rezul-
tat klasterovanja, ce sadrzati i atribut sa euklidskim rastojanjem od instance do
najblizeg centroida
 Cluster label - da li oznaka klastera da bude niska (Cluster 1, Cluster 2, ...) ili samo
broj

• Parametri cvora K-means u odeljku Expert

 kriterijum za zaustavljanje klasterovanja


∗ Maximum Iterations - maksimalan broj iteracija
∗ Change tolerance - tolerancija greske
Ukoliko je za svaki klaster Cj u iteraciji i euklidsko rastojanje centroida u iteraciji
i i centroida u iteraciji i − 1 manje od zadate vrednosti tolerancije greske, vraca
se dobijeni model.
 Vrednost sa kojom se kodira T u transformisanim binarnim atributima za kategoricke
atribute.

7
4.4 Rukovanje nedostajucim (blanko) vrednostima
Nedostajuce (blanko) vrednosti se zamenjuju sa neutralnim vrednostima. U numerickim i
binarnim atributima nedostajuca vrednost se zamenjuje sa 0,5. U kategorickim atributima, pri
pojavi nedostajuce vrednosti u tom atributu, vrednosti u svim izvedenim atributi se postavljaju
na 0.

4.5 Podaci koje sadrzi model klasterovanja


Skupu za klasterovanje se dodaju jos dva atributa

• $KM-imemodela sa podatkom o klasteru kome instanca pripada

• $KMD-imemodela - sa rastojanjem izmedu instance i najblizeg centroida

Pri interpretaciji rezultata klasterovanja

• utvrduju se karakteristike koje su jedinstvene za klaster

• analizaraju se vrednosti atributa po klasterima

Kada se napravi model, postoji nekoliko nacina za gracki prikaz statistika i distribucije vred-
nosti atributa po klasterima:

• Model Summary - za brzu odluku koliko je dobro klasterovanje. Prikazuje broj atributa
koriscenih za pravljenje modela, broj dobijenih klastera i silueta koecijent.

• Clusters - prikaz tabele sa podacima o svakom klasteru. Za svaki klaster se izdvaja:

 Cluster - ime klastera


 Size - velicina klastera u broju instanci, kao i procenat instanci koji klaster sadrzi u
odnosu na ukupan broj instanci u skupu
 Inputs - za svaki atribut koji je koriscen pri pravljenju modela prikazuje se njegova
znacajnost i srednja vrednost po klasteru

• Predictor Importance - prikazuje znacajnost atributa pri pravljenju modela u opsegu [0-1]

• Cluster Sizes - gracki prikaz velicine klastera

• Cell Distribution - za detaljniji prikaz distribucije vrednosti izabranog atributu u izabra-


nom klasteru koji se biraju preko pogleda Clusters. Svetlijom bojom su prikazani podaci
za ceo skup, a tamnijom za izabrani klaster.

• Cluster Comparison - za poredenje izabranih klastera (biraju se klikom) preko pogleda


Clusters. Za svaki atribut distribucija vrednosti po klasteru se prikazuje pomocu kucica.
Svakom klasteru je dodeljena jedinstvena boja za lakse pordenje klastera. Ovim pogledom
se najlakse uocava sta je specicno za svaki klaster.

Primer 2: Izvrsiti klasterovanje predmeta primenom algoritma K-sredina u alatu IBM SPSS
Modeler. Skup podaci_o_predmetima.csv ima atribute:

• predmet - naziv predmeta

• upisalo - broj studenata koji su upisali predmet

8
• polozilo - broj studenata koji su polozili ispit iz predmeta

• prosek - prosecna ocena na polozenim ispitima iz predmeta. Za predmete koje nijedan


student nije polozio, prosek je 5.

Resenje:

• klasterovanje_podaci_o_predmetima_k_sredina.str - radni tok

• ipVezbe8Primer2.pdf - komentari

You might also like