You are on page 1of 48

UNIVERZITET U BEOGRADU

Fakultet organizacionih nauka

ZAVRŠNI RAD

Algoritam za klasterovanje KulketCOOLCAT

Mentor : Studentkinja :
prof. Dr Boris Delibašić Suzana Korićanac, 20/04

Jun 2009. godine, Beograd

0
SADRŽAJ

1. UVOD......................................................................................................................2
2. ENTROPIJA, KLASTEROVANJE I FORMULACIJA PROBLEMA.........................3
2.1. Entropija i klasterovanje...................................................................................3
2.2. Formulacija problema.......................................................................................3
2.3. Entropija i koeficijenti sličnosti..........................................................................8
2.4. Očekivana entropija i princip minimalne dužine opisa (MDL princip, eng.
Minimum Description Length).................................................................................9
2.5. Evaluacija rezultata klasterovanja..................................................................10
3. KULKET ALGORITAM..........................................................................................12
3.1. Inicijalizacija...................................................................................................12
3.2. Korak inkrementacije......................................................................................13
3.3. Primer rada algoritma.....................................................................................14
3.3.1. Formulacija problema..............................................................................15
3.3.2. Inicijalizacija.............................................................................................15
3.3.3. Inkrementalni korak.................................................................................18
3.3.4. Određivanje najgore smeštenih zapisa i njihovo ponovno procesuiranje
...........................................................................................................................24
3.4. Karakteristike, prednosti i nedostaci algoritma..............................................30
4. KOMPONENTE....................................................................................................32
4.1. Komponente algoritma Kulket........................................................................32
4.1.1. Definisanje broja klastera........................................................................33
4.1.2. Inicijalizacija centroida.............................................................................33
4.1.3. Merenje udaljenosti.................................................................................34
4.1.4. Kriterijum za zaustavljenje.......................................................................35
4.1.5. Razdvajanje klastera...............................................................................35
5. ZAKLJUČAK.........................................................................................................37
LITERATURA.......................................................................................................................39
1. UVOD......................................................................................................................2
2. ENTROPIJA, KLASTEROVANJE I FORMULACIJA PROBLEMA.........................3
2.1. Entropija i klasterovanje...................................................................................3

1
2.2. Formulacija problema.......................................................................................4
2.3. Entropija i koeficijenti sličnosti..........................................................................8
2.4. Očekivana entropija i princip minimalne dužine opisa (MDL princip, eng.
Minimum Description Length).................................................................................9
2.5. Evaluacija rezultata klasterovanja..................................................................10
3. KULKET ALGORITAM..........................................................................................12
3.1. Inicijalizacija...................................................................................................12
3.2. Korak inkrementacije......................................................................................13
3.3. Primer rada algoritma.....................................................................................14
3.3.1. Formulacija problema..............................................................................15
3.3.2. Inicijalizacija.............................................................................................15
3.3.3. Inkrementalni korak.................................................................................18
3.3.4. Određivanje najgore smeštenih zapisa i njihovo ponovno procesuiranje
...........................................................................................................................24
3.4. Karakteristike, prednosti i nedostaci algoritma..............................................30
4. KOMPONENTE....................................................................................................32
4.1. Komponente algoritma Kulket........................................................................32
4.1.1. Definisanje broja klastera........................................................................33
4.1.2. Definisanje uzorka...................................................................................34
4.1.3. Inicijalizacija centroida.............................................................................34
4.1.4. Selekcija klastera.....................................................................................36
4.1.5. Izračunavanje stepena pripadnosti tačke klasteru kome je dodeljena ....37
4.1.6. Definisanje broja tačaka za koje se ponovo vrši selekcija klastera ........38
4.1.7. Kriterijum za zaustavljanje algoritma.......................................................38
5. ZAKLJUČAK.........................................................................................................40
LITERATURA............................................................................................................42

2
1. UVOD

Klasterovanje je široko korišćena tehnika kojom se objekti u nekoj bazi podataka


grupišu tako da objekti u istoj grupi, ili klasteru, budu međusobno sličniji od objekata
u drugim klasterima [13]. Objekat predstavlja zapis baze podataka (u radu će se još
koristiti i termin tačka), a sličnost se odnosi na vrednosti atributa tih zapisa. Priroda
atributa može biti takva da je vrednost koju on uzima numerička ili nenumerička.
Atributi čiji domen nije numerički nazivaju se kategorički. Brojne discipline, od
statistike do psihologije, koriste upravo kategoričke podatke pa klasterovanje
kategoričkih podataka postaje značajan zadatak mašinskog učenja. Ipak, u
poređenju sa algoritmima za klasterovanje koji rade sa numeričkim podacima u
inženjerskoj zajednici relativno je mali broj publikacija koje se bave ovim
problemom.

U radu je izložen algoritam kategoričkog klasterovanja Kulket (eng. COOLCAT) koji


je nastao kao posledica istraživanja uočene veze između klasterovanja i entropije, a
to je da klasteri sa sličnijim zapisima imaju manju entropiju od klastera kod kojih se
zapisi dosta razlikuju. Njegovi autori smatrali su da je klasičan pojam, kakav je
entropija, prirodan i intuitivan način povezivanja zapisa. [1]

Rad je struktuiran na sledeći način :

U poglavlju 2 predstavljena je osnova za razumevanje pojmova entropije i


klasterovanja kao i njihovog odnosa. U nastavku je formulisan i problem kojim se
bavi algoritam.

U poglavlju 3 opisan je Kulket algoritam i predstavljen primer rada algoritma.

U poglavlju 4 definisane su mogućnosti korišćenja određenih rešenja iz algoritma u


drugim algritmima, odnosno definisane su komponente.

U poglavlju 5 dati su zaključak i teme za dalje bavljenje ovim problemom.

3
2. ENTROPIJA, KLASTEROVANJE I FORMULACIJA PROBLEMA

2.1. Entropija i klasterovanje

Entropija je mera informacije i neodređenosti slučajne promenljive. Formalno, ako


je X slučajna promenljiva, S(X) skup vrednosti koji X uzima i p(x) funkcija
verovatnoće promenljive X, entropija E(X) definisana je jednakošću (1) :

E X     p x  log p x   (1)
xS  X 

Entropija višedimenzionalnog vektora xˆ   X 1 ,  , X n  data je jednačinom (2)

E  xˆ    � L � p  x1 ,L , xn  log p  x1 ,L , xn 
x1�S  X1  x n �S  X n 
(2)

Entropija se nekad tumači kao mera količine nereda u nekom sistemu. Tako će
soba sa čarapama razbacanim po podu imati veću entropiju od sobe u kojoj su
čarape sparene, valjano složene i odložene u odgovarajući deo ormara. [1]

Klasterovanje kao tehnika pripada oblasti mašinskog učenja, preciznije njegovoj


podoblasti označenoj kao Otkrivanje zakonitosti u podacima (eng. Data Mining).

Mašinsko učenje je proces koji se izvodi na računarima sa ciljem da se, na osnovu


podataka iz prošlosti, izgradi model koji može da unapredi funkcionisanje sistema,
tj. kvalitetnije donošenje odluka. Cilj mašinskog učenja jeste da se iskoristi
sposobnost mašina da obrade velike količine podataka za relativno kratak
vremenski period. [3]

Otkrivanje zakonitosti u podacima objedinjuje sve algoritme i metode iz oblasti


mašinskog učenja i statistike koji služe za otkrivanje zakonitosti u podacima. [3]

4
Klasterovanje predstavlja grupisanje objekata na osnovu njihove “sličnosti”, gde se
sličnost objekata odnosi na sličnost njihovih vrednosti atributa. Veza entropije i
klasterovanja ogleda se u tome da entropija služi kao mera sličnosti, odnosno kao
kriterijum za grupisanje zapisa pošto je njena vrednost manja ukoliko su objekti
(njihove kombinacije vrednosti atributa) sličniji i obrnuto..

2.2. Formulacija problema

Problem koji se pokušava rešiti može se formulisati na sledeći način :

Dat je skup podataka D koji čine objekti pˆ1 ,L , pˆ N gde je svaki objekat

 
multidimenzionalni vektor sa d kategoričkih atributa, odnosno pˆ j  p j ,L , p j , i dat
1 d

je prirodni broj k takav da se pokušava postići smeštanje objekata u k grupa tj.


klastera C1, …, Ck tako da se minimizira entropija cele grupacije.

5
Ovaj problem je NP-kompletan 1, a pored toga težak za aproksimaciju. Zapravo
problem je NP-kompletan za svaku funkciju udaljenosti d(x,y) definisanu nad
parom x,y koja pokušava da mapira parove objekata u realne brojeve (iz tog
razloga se koristi funkcija entropije) pa je potrebno pribeći heuristici 2 kako bi se
pronašlo rešenje.

Funkcija cilja je data jednakošću (3) i predstavlja potpunu entropiju sistema. Teži se
tome da se minimizira očekivana entropija, data jednakošću (3), gde su E(P(C1)),
…, E(P(Ck)) entropije svakog klastera, P(Ci)) se odnosi na broj objekata dodeljenih

1Problem odlučivanja C je NP-kompletan (Nondeterministic Polynomial time,


nedeterminističko polinomijalno vreme) ako je C iz klase NP problema* i svaki problem iz
NP klase može da se transformiše u C u polinomijalnom vremenu (vreme izračunavanja
problema, odnosno broj koraka koje računar ili apstraktna mašina izvedu prilikom
evaluacije algoritma gde vreme, m(n), nije veće od polinomijalne funkcije veličine problema,

n). Matematički zapisano u notaciji velikog O, ovo znači m(n) = O(nk) gde je k neka
konstanta koja može zavisiti od problema. Na primer, algoritam za sortiranje kviksort za n

brojeva zahteva najviše n2 operacija. Stoga mu je potrebno vreme O(n2), pa se radi o


algoritmu polinomijalnog vremena.

*Intuitivno klasa NP problema je skup problema odlučivanja za koje DA odgovori imaju


jednostavan dokaz za činjenicu da odgovor zaista jeste potvrdan. Ovi dokazi moraju biti
provereni u polinomijalnom vremenu na determinističneoj Turing mašini (uređaj za
manipulaciju apstraktnim simbolima koji mogu biti adaptirani tako da simuliraju logiku bilo
kog računarskog algoritma). Za NP kompletne probleme nepoznati su algoritmi
polinomijalnog vremena.[2]

2 Heuristika je tehnika za rešavanje problema koja ignoriše dokazivost tačnosti rešenja, ali
pritom obično nudi dobra rešenja ili rešava jednostavniji problem koji sadrži ili je povezan
sa rešenjem složenijeg problema. Heuristički metod se koristi za brzo dolaženje do rešenja
za koje se veruje da je najbliže najboljem mogućem odnosno optimalnom rešenju. U
heurističke metode spadaju intuitivni sudovi, naučne pretpostavke ili prosto zdrav razum
[4]

6
klasteru Ci, P  Ci  �D , pri čemu važi P  Ci  �P  C j   � za svako i,j=1,…k, i≠j.
(
Simbol C  C1 ,L , Ck predstavlja klasterovanje.

( �P  Ck  �
 
E C  ��
k � D
E  P  Ck     �

(3)
� �

Ova funkcija, kao što će se videti kasnije, omogućava implementaciju


inkrementalnog algoritma koji se može efektivno nositi sa velikim skupom podataka,
pošto nije neophodno posmatrati ceo skup objekata da bi se zaključilo o entropiji
skupa. Ona omogućava da se za objekat utvrdi kako će njegovo smeštanje u svaki
od postojećih klastera uticati na entropiju sistema.

Rešenje koje je prikazano u ovom radu jeste heuristika zasnovana na pronalaženju


inicijalnih klastera korišćenjem kriterijuma entropije, nakon čega sledi inkrementalno
dodavanje objekata inicijalnim klasterima prema krterijumu koji minimizuje
jednakost (3).

Dalje je moguće pojednostavljivanje postupka izračunavanja entropije skupa


zapisa. Ako se pretpostavi nezavisnost atributa zapisa, jednakost (2) postaje
jednakost (4), odnosno zajednička verovatnoća kombinovanih vrednosti atributa
postaje proizvod verovatnoća svakog atributa iz čega sledi da entropija može da se
kalkuliše kao suma entropija atributa.

E  xˆ    � L � p  x ,L , xn  log p  x1 ,L , xn   E  X 1  + E  X 2  + L + E  X n 
1
(4)
 
x 1�S X 1 
x n �S X n 

Na jednostavnom primeru predstavljen je metod izračunavanja entropije za tri


moguća načina grupisanja tri zapisa.

Dat je skup od tri zapisa u Tabeli 1, koje je potrebno smestiti u dva klastera [1]

d  2, k  2

7
Colour Weight
v1 red heavy
v2 blue light
v3 red medium
Tabela 1. Zapisi v1 , v2 , v3

(
Klasterovanje 1 : C1

C1 : v2

C0: v1 , v3

1
� 1 1 1�
E  C0    �log + log � 0
1
� 1 1 1�
2
� 2 1 1 1 1 1 1�
E  C1    � log + log + log + log � 1
2
� 2 2 2 2 2 2 2�
(
  2 1
E C1  * 0 + *1  0, 66
3 3

8
(
Klasterovanje 2 : C2

C1 : v3

C0 : v1 , v2

1
� 1 1 1�
E  C1    �log + log � 0
1
� 1 1 1�
�1 1 1 1 1 1 1 1�
E  C0    � log + log + log + log � 2
�2 2 2 2 2 2 2 2�
(
  1 2
E C2  * 0 + * 2  1,33
3 3

(
Klasterovanje 3 : C3

C1 : v1

C0 : v2 , v3

1
� 1 1 1�
E  C1    �log + log � 0
1
� 1 1 1�
1
� 1 1 1 1 1 1 1�
E  C0    � log + log + log + log � 2
�2 2 2 2 2 2 2 2�
(
  1 2
E C3  * 0 + * 2  1,33
3 3

Slika 1. Tri različita klasterovanja za skup v1 , v2 , v3 . Klasterovanje 1 minimizuje


očekivanu entropiju dva klastera [1]

9
Sa Slike 1 vide se sve moguće grupacije, sa entropijom svakog klastera i
očekivanom entropijom sistema. Minimalna očekivana entropija je ona u grupaciji 1,
koje je očigledno i pravi način za klasterovanje zapisa (korišćenjem dva klastera).

U slučajevima kada se utvrdi postojanje korelacije između dva ili više atributa nekog
skupa podataka, moguće je izmeniti objekte kreiranjem atributa koji reflektuju ove
korelacije i potom primeniti jednakost (4) za računanje zajedničke entropije. Na
primer, ako se skup podataka sastoji od zapisa čiji su atributi A, B, C, D, E, F i
poznato je da su (A,B),( A,C) i (E,F) u korelaciji, skup podataka je moguće
transformisati u takav skup koji ima zapise sa atributima AB, AC, EF, a potom
izračunati entropiju polazeći od pretpostavke da su ovi novi atributi nezavisni.
Neophodno je primetiti da se za grupisane atribute zapravo računaju njihove
zajedničke verovatnoće. [1]

2.3. Entropija i koeficijenti sličnosti

Korišćenje entropije kao mere sličnosti dva vektora ekvivalentno je korišćenju


drugih uveliko prihvaćenih koeficijenata sličnosti. Koeficijenti sličnosti prikazani su u
2x2 Tabeli 2, gde se broj 1 odnosi na prisustvo varijable, a 0 na njeno odsustvo. [1]

Koeficijent jednostavnog poklapanja, u nastavku SM definisan je jednakošću (5).


On uzima u obzir i zajedničko odsustvo varijable, predstavljeno sa d u jednakosti.

(a + d )
SM  (5)
(a + b + c + d )

Tabela 2. Asocijativna tabela : 1 se dodeljuje za prisustvo varijable, 0 za odsustvo


[1]

Jaccard koeficijent, J, dat je jednakošću (6). On izbegava korišćenje istovremenog


odsustva varijable u izračunavanju sličnosti (odsustvo d).

10
a
SM  (6)
(a + b + c +)

Lema 1. Za bilo koje vektore p,q,u,v u skupu podataka SM  { p, q}   SM  { u, v}  ako

i samo ako E  { p, q}   E  { u , v} 

Lema 2. Za bilo koje vektore p,q,u,v u skupu podataka SM  { p, q}  > SM  { u, v}  ako

i samo ako E  { p, q}  < E  { u , v} 

Lema 3. Za bilo koje vektore p,q,u,v u skupu podataka SM  { p, q}  < SM  { u, v}  ako i

samo ako E  { p, q}  > E  { u , v} 

Teorema 1. Date su dve matrice sličnosti dobijene nad istim skupom podataka,
jedna korisćenjem SM koeficijenta, a druga korišćenjem entropije. Ako bi u prvoj
matrici redosled ulaza bio opadajući, a u drugoj rastući, relativni raspored parova
tačaka bio bi isti u oba slučaja.

Dokaz teoreme proizilazi iz lema 1, 2, 3.

Kao posledica Teoreme 1 moguće je koristiti entropiju kao meru sličnosti u bilo kom
algoritmu koji koristi SM koeficijent i pritom dobiti identične rezultate[1]. Osim toga,
Kulket koristi činjenicu da entropija, za razliku od SM koefiijenta i Jaccard
koeficijenta, može biti mera sličnosti za bilo koji skup vektora, ne samo dvočlani.

2.4. Očekivana entropija i princip minimalne dužine opisa (MDL princip, eng.
Minimum Description Length)

MDL princip preporučuje odabir modela koji će minimizirati broj bitova potrebnih za
kodiranje tog modela. Ovaj princip je široko korišćen za poređenje klasifikatora ali
nije korišćen kod problema koje se tiču klasterovanja. [1]

11
Optimalno kodiranje skupa klastera može se realizovati dodelom koda svakom
atributu podataka prema verovatnoći pojavljivanja atributa u klasteru, korišćenjem
Hofmanovog koda. Ovo kodiranje bi imalo veličinu datu jenddnakošću (7)

� P (A
i i  Vi j ) log P( Ai  Vi j ) (7)

za svaki klaster Ck. Znači da veličina koda može biti minimizirana minimiziranjem
očekivane vrednosti date funkcije, a to je upravo funkcija koju je i odabrana da se
minimizuje kao funkcija cilja : očekivana entropija klasterovanja. Dakle, tehnika
očekivane entropije teži da pronađe klasterovanje koje prati MDL princip. Ovo ima
bitne implikacije : činjenica da je kodiranje klastera minimalno ukazuje da je
moguće očekivati veoma sažete reprezentacije klastera koji se oforme u bilo kom
koraku algoritma. Ovo zauzvrat čini mogućim inkrementalno procesuiranje daljih
zapisa bez potrebe da se čuvaju svi prethodno procesuirani zapisi u memoriji.
Čuvaju se samo sažete reprezentacije klastera u koje su isti smešteni.[1]

2.5. Evaluacija rezultata klasterovanja

Čest problem na koji nailazi onaj ko praktično koristi algoritme klasterovanja jeste
teškoća u evaluaciji rešenja koje daje algoritam. Različiti algoritmi klasterovanja (a
nekada i mnoge aplikacije koje primenjuju isti algoritam kada koriste male varijacije
inicijalnih uslova i parametara) rezultuju različitim rešenjima, pri čemu svako od
dobijenih rešenja izgleda prihvatljivo. To je pak posledica činjenice da ne postoji
ujednačen kriterijum za definisanje klastera i čak više od toga, krajnji klasteri koje
da algoritam zapravo su oni koji odgovaraju kriterijumu kojim je algoritam vođen. [1]

Kako znati koje je rešenje dobro rešenje ? Autori su se dvoumili oko dobrih načina
za utvrđivanje validnosti klastera koje daje algoritam. Dve široko primenjene
metode su sledeće : [1]

-Test značajnosti na eksternim varijablama Ova tehnika podrazumeva


korišćenje testova značajnosti koji upoređuju klastere u odnosu na varijable koje

12
nisu korišćenje za generisanje tih klastera. Jedan način da se to uradi jeste da se
izračuna entropija rešenja korišćenjem varijable koja nije korišćena u klasterovanju

(npr. atribut A ). Entropija atributa C u klasteru Ck računa se kao što je prikazano

jednakošću (8) gde Vi predstavlja jednu od mogućih vrednosti koje uzima C.


Evaluacija se izvodi računanjem očekivane entropije (uzimajući u obzir veličinu
klastera)

E  Ck   �P  C  Vi  log P  C  Vi  (8)
i

-Funkcija kategoričke dobiti .Funkcija kategoričke dobiti (CU) pokušava da


maksimizira i verovatnoću da dva objekta u istom klasteru imaju zajedničke
vrednosti atributa i verovatnoću da objekti iz različitih klastera imaju različite
atribute. Izraz za izračunavanje očekivane vrednosti CU funkcije je dat jednakošću
(9)

Ck
P A =V
��� / Ck   P  Ai = Vij  �(9)
2 2
CU = � i ij
k D i� j �

Ove tehnike nisu korišćene u validaciji rezultata dobijenih u primeru rada algoritma
izloženomg u ovom radu.

13
14
3. KULKET ALGORITAM

Algoritam Kulket omogućava efikasno klasterovanje velikog skupa kategoričkih


podataka. Naziv je dobio zbog činjenice da se u postupku izvršenja algoritma
smanjuje entropija klastera, eng. cool .

Kulket algoritam, kako je već naznačeno, zasniva se na entropiji. Algortiama radi u


dva koraka :

- korak inicijalizacije
- inkrementalni korak.

3.1. Inicijalizacija

Korak inicijalizacije je početni korak algoritma u kojem se vrši inicijalizacija klastera


sa po jednim zapisom. U klastere se kasnije, u inkrementalnom koraku, smeštaju
preostali zapisi. Postupak formiranja inicijalnih klastera je sledeći :

- Iz skupa podataka uzima se s zapisa koji formiraju uzorak S tako da važi s = N ,


gde je N veličina celokupnog skupa podataka

- Za uzorak S pronalazi se k najrazličitijih zapisa gde je k broj klastera, koje se


korisnički definiše. Počinje se pronalaženjem dva zapisa ps1, ps2 koji maksimiziraju
E(ps1, ps2). Takva dva zapisa markiraju se i smeštaju u dva različita klastera C1 i C2.
Potom se postupak nastavlja inkrementalno, tj. da bi se našao zapis koji će se
smestiti u j-i klaster odabira se nemarkiran objekat psj koji maksimizira

min i 1,K , j 1 E ( ps i , ps j ) .

15
3.2. Korak inkrementacije

U koraku inicijalizacije dobijeno je k klastera sa po jednim početnim zapisom. U


drugom koraku precesuiraju se preostali zapisi iz skupa podataka (ostatak uzorka i
objekti izvan uzorka) inkrementalno, zapis po zapis, pronalaženjem odgovarajućeg
klastera za svaki zapis. Ovo se radi izračunavanjem očekivane entropije sistema
nakon smeštanja objekta u svaki od klastera, nakon čega se odabira klaster za koji
je ta očekivana entropija minimalna. Dakle, u koraku inkrementacije dovodi se bafer
objekata u glavnu memoriju, a potom se klasteruju jedan po jedan. Prvu grupu
objekata čine oni zapisi u uzorku koji nisu odabrani da inicijalno napune klastere.

(
1. Dat je inicijalni skup klastera C  C1 ,L , Ck

2. Dovesti objekte u memoriju iz diska i za svaki objekat p uraditi

3. Za i  1,K , k
(i (
4. Smesti p u Ci i računaj E C   gde C i predstavlja

klasterovanje postignuto smeštanjem p u klaster Ci

(i
5.   
Neka je j  arg min i E C

7. Smesti p u C j
8. Dok svi objekti ne budu smešteni u neki klaster

Redosled procesuiranih objekata ima konačan uticaj na kvalitet dobijenih klastera.


Moguće je da objekat koji izgleda kao odgovarajući za klaster u određenom
trenutku postane loš izbor kasnije kad novi objekti budu klasterovani. Sa ciljem da
se umanji ovaj efekat prihvaćena je heuristika po kojoj se vrši reprocesuiranje
frakcije objekata u grupi. Nakon što je grupa objekata klasterovana bira se frakcija
m zapisa koji se mogu smatrati najgorim izborom za klastere u kojima se nalaze.
Objekti te frakcije bivaju odstranjeni iz klastera i ponovo klasterovani.

16
Koliko neki objekat odgovara klasteru u kome se originalno nalazi utvrđuje se na
osnovu broju pojavljivanja vrednosti njegovih atributa u tom klasteru. Odnosno, na

osnovu vrednosti qi j za svaki zapis i u grupi i svaki atribut j , gde je qi j broj koji

pokazuje koliko se puta vrednost atributa Vi j pojavljivala u klasteru u kome je i


smešten.

Ovi brojevi potom bivaju pretvoreni u verovatnoće deljenjem qi j sa veličinom

klastera u kome se i-ti zapis nalazi. Verovatnoće su označene sa pi j . Za svaki


zapis potom se računa odgovarajuća verovatnoća korišćenjem jednakosti (10)

pi  �pi j (10)

Treba primetiti da što je manje pi to zapis manje odgovara klasteru u kome se


nalazi tj. može se reći da globalna kombinacija atributa tog zapisa nije mnogo
slična klasteru kome zapis pripada.

Zapisi se potom sortiraju prema pi nakon čega se selektuje m zapisa sa najnižim

vrednostima pi i to su zapisi koje treba iznova klasterovati. Svaki iznova

procesuiran zapis smešta se u klaster koji minimizuje očekivanu entropiju, kao što
je rađeno u inkrementalnom koraku. Parametar m definiše korisnik.

3.3. Primer rada algoritma

U Tabeli 3 je prikazan skup podataka dobijenih tokom jednog kognitivnog


psihološkog eksperimenta. Skup ima 16 zapisa, 4 atributa, a svaki atribut uzima
jednu od dve moguće vrednosti. [1]

17
Color Size Act Age
p1 YELLOW SMALL STRETCH ADULT
p2 YELLOW SMALL STRETCH CHILD
p3 YELLOW SMALL DIP ADULT
p4 YELLOW SMALL DIP CHILD
p5 YELLOW LARGE STRETCH ADULT
p6 YELLOW LARGE STRETCH CHILD
p7 YELLOW LARGE DIP ADULT
p8 YELLOW LARGE DIP CHILD
p9 PURPLE SMALL STRETCH ADULT
p10 PURPLE SMALL STRETCH CHILD
p11 PURPLE SMALL DIP ADULT
p12 PURPLE SMALL DIP CHILD
p13 PURPLE LARGE STRETCH ADULT
p14 PURPLE LARGE STRETCH CHILD
p15 PURPLE LARGE DIP ADULT
p16 PURPLE LARGE DIP CHILD
Tabela 3. Podaci psihološkog eksperimenta

3.3.1. Formulacija problema

Dat je skup podataka, tabelarno prikazan koji čine zapisi p1 ,L , p16 gde je svaki

 
zapis multidimenzionalni vektor sa 4 kategorička atributa, odnosno pi  pi ,L , pi ,
1 4

i  1,K ,16 . Zapise je neophodno smestiti u tri klastera tako da se entropija cele
grupacije minimizira.

3.3.2. Inicijalizacija

Slučajnim odabirom zapisa formira se uzorak od šest zapisa predstavljen u Tabeli 4.

Skup zapisa : N =16


Broj atributa : d = 4
Broj klastera : k = 3
Uzorak : s = 6

18
Color Size Act Age
ps2 YELLOW SMALL STRETCH CHILD
ps3 YELLOW SMALL DIP ADULT
ps9 PURPLE SMALL STRETCH ADULT
ps11 PURPLE SMALL DIP ADULT
ps13 PURPLE LARGE STRETCH ADULT
ps16 PURPLE LARGE DIP CHILD
Tabela 4. Uzorak

Za svaka dva zapisa uz pomoć formule (2) računa se entropija kako bi se pronašli
najrazličitiji zapisi. Što je veća entropija to se zapisi više razlikuju.

�2 2 2 2 1 1 1 1 1 1 1 1�
E  ps 2 , ps 3    � * log + * log + * log + * log + * log + * log �
�2 2 2 2 2 2 2 2 2 2 2 2�
� 1 1 1 1 �
0 + 0 + *  1 + *  1 + *  1 + *  1 � 2
 �
� 2 2 2 2 �

ps2 ps3 ps9 ps11 ps13 ps16


ps2 / 2 2 3 3 3
ps3 / 2 1 3 3
ps9 / 1 1 3
ps11 / 2 2
ps13 / 2
ps16 /
Tabela 5. Entropije E(psi,psj)

Parovi tačaka koji imaju maksimalnu vrednost entropije, a sa Tabele 5 se vidi da je


ta vrednost tri, su kandidati za dva početna klastera .
(ps2,ps11)
(ps2,ps13)
(ps2,ps16)
(ps3,ps13)
(ps3,ps16)

19
(ps9,ps16)
(ps11,ps2)

U klaster C1 smešta se zapis ps2, a u klaster C 2 zapis ps11. Ovi zapisi se potom
markiraju.

Color Size Act Age


ps3 YELLOW SMALL DIP ADULT
ps9 PURPLE SMALL STRETCH ADULT
ps13 PURPLE LARGE STRETCH ADULT
ps16 PURPLE LARGE DIP CHILD
Tabela 6. Zapisi iz uzorka koji nisu klasterovani

Za svaki od novoformiranih klastera (j) i za svaki od preostalih zapisa iz uzorka (i)


računa se entropija j-og kalastera kada se u njega smesti i-ti zapis. Entropije su
date u Tabeli 7. Potom se posmatra kojem klasteru zapis više odgovara, pa se
izvlače vrednosti entropija za taj kalaster u min koloni. Kriterijum maksimizacije
entropije podrazumeva da u treći klaster ide zapis za koji je vrednost entropije u
min koloni najveća.

20
E (psi, ps2) E (psi, ps11) min
Tabela 7. Entropije ps3 2 1 1 zapisa i određivanje
zapisa koji će ps9 2 1 1 inicijalizovati treći
klaster ps13 3 2 2
ps16 3 2 2
Kandidati za smeštanje u klaster
C3 su ps13 i ps16. Odabran je zapis ps13 koji biva smešten u treći klaster i markiran.

Ovim je završen korak inicijalizacije kojim su dobijena tri klastera data u Tabeli 8.

C1 ps2
C2 ps11
C3 ps13
Tabela 8. Inicijalizovani klasteri

3.3.3. Inkrementalni korak

U inkrementalnom koraku smeštaju se ostali zapisi iz uzorka, a potom i ostatka


skupa, u inicijalizovane klastere. Za svaki zapis računa se očekivana entropija
sistema kada se taj zapis smesti u klaster korišćenjem jednakosti (3). Zapis se
smešta u klaster sa minimalnom vrednošću entropije, pošto se teži minimizaciji iste.

Prvo se smeštaju preostali zapisi iz uzorka, odnosno p s3 , ps9, ps16, a potom ostali
zapisi iz skupa.

(
  2 1 1
E C1  * 2 + *0 + *0  0.25
16 16 16
(
  1 2 1
E C 2  *0 + *1 + *0  0.125
16 16 16
(
  1 1 2
E C 3  *0 + *0 + *3  0.375
16 16 16

21
( ( (
 
E C1  
E C2  
E C3 Klaster

ps3 0.25 0.125 0.375 C2


Tabela 9. Očekivane entropije klasterovanja za zapis ps3

C1 ps2
C2 ps11, ps3
C3 ps13
Tabela 10. Klasteri nakon ubacivanja zapisa ps3

(
  2 2 1
E C1  * E  ps 2 , ps 9  + * E  ps11 , ps 3  + * E  ps13 
16 16 16
2 � �1 1 1 1 1 1 1 1�� 2 � �1 1 1 � 1
1�
 *�  � *log + *log + *log + *log � �+ *� � *log + *log �
�+ 16 *0
16 � �2 2 2 2 2 2 2 2�� 16 � �2 2 2 2�

 0.375

( ( (
 
E C1  
E C2 E C3  Klaster

ps9 0.375 0,344360938 0.25 C3


Tabela 11. Očekivane entropije klasterovanja za zapis ps9

C1 ps2
C2 ps11, ps3
C3 ps13, ps9
Tabela 12. Klasteri nakon ubacivanja zapisa ps9

( ( (
 
E C1  
E C2 E C3  Klaster

ps16 0.625 0,6415414067 0,6415414067 C1


Tabela 13. Očekivane entropije klasterovanja za zapis ps16

C1 ps2 , ps16
C2 ps11, ps3
C3 ps13, ps9
Tabela 14. Klasteri nakon ubacivanja zapisa ps16

22
Nakon ubačenih zapisa iz uzorka prelazi se na ubacivanje preostalih zapisa iz
skupa na isti način. Postupak se pnavlja dok svi zapisi ne budu smešteni u klastere.

( ( (
 
E C1  
E C2 E C3  Klaster

p1 0,938721875 0,84436093 0,84436093 C2


Tabela 15. Očekivane entropije klasterovanja za zapis p1

C1 ps2, ps16
C2 ps11, ps3, p1
C3 ps13, ps9
Tabela 16. Klasteri nakon ubacivanja zapisa p1

( ( (
 
E C1  
E C2 E C3  Klaster

p4 0,985902344 1,108458593 1,40808281 C1


Tabela 17. Očekivane entropije klasterovanja za zapis p4

C1 ps2, ps16, p4
C2 ps11, ps3, p1
C3 ps13, ps9
Tabela 18. Klasteri nakon ubacivanja zapisa p4

( ( (
 
E C1  
E C2 E C3  Klaster

p5 1,375000000 1,297180468 1,205263282 C3


Tabela 19. Očekivane entropije klasterovanja za zapis p5

C1 ps2, ps16, p4
C2 ps11, ps3, p1
C3 ps13, ps9, p5
Tabela 20. Klasteri nakon ubacivanja zapisa p5

23
( ( (
 
E C1  
E C2  
E C3 Klaster

p6 1,3915414067 1,7193609378 1,5165414067 C1


Tabela 21. Očekivane entropije klasterovanja za zapis p6

C1 ps2, ps16, p4, p6


C2 ps11, ps3, p1
C3 ps13, ps9, p5
Tabela 22. Klasteri nakon ubacivanja zapisa p6

( ( (
 
E C1  
E C2  
E C3 Klaster

p7 1,7467710564 1,6556390622 1,7028195311 C2


Tabela 23. Očekivane entropije klasterovanja za zapis p7

C1 ps2, ps16, p4, p6


C2 ps11, ps3, p1, p7
C3 ps13, ps9, p5
Tabela 24. Klasteri nakon ubacivanja zapisa p7

( ( (
 
E C1  
E C2  
E C3 Klaster

p8 1,785266182 2,0274101186 2,1697367178 C1


Tabela 25. Očekivane entropije klasterovanja za zapis p8

C1 ps2, ps16, p4, p6 ,p8


C2 ps11, ps3, p1 , p7
C3 ps13, ps9, p5

24
Tabela 26. Klasteri nakon ubacivanja zapisa p8

( ( (
 
E C1  
E C2  
E C3 Klaster

p10 2,047180468 2,2348567698 2,0965443068 C1


Tabela 27. Očekivane entropije klasterovanja za zapis p10

25
C1 ps2, ps16, p4, p6 ,p8 , p10
C2 ps11, ps3, p1 , p7
C3 ps13, ps9, p5
Tabela 28. Klasteri nakon ubacivanja zapisa p10

( ( (
 
E C1  
E C2  
E C3 Klaster

p12 2,245931459 2,4189515253 2,561278124 C1


Tabela 29. Očekivane entropije klasterovanja za zapis p12

C1 ps2, ps16, p4, p6 ,p8 , p10 , p12


C2 ps11, ps3, p1 , p7
C3 ps13, ps9, p5
Tabela 30. Klasteri nakon ubacivanja zapisa p12

( ( (
 
E C1  
E C2  
E C3 Klaster

p14 2,452819531 2,773341578 2,5100291152 C1

Tabela 31. Očekivane entropije klasterovanja za zapis p14

C1 ps2, ps16, p4, p6 ,p8 , p10 , p12 , p14


C2 ps11, ps3, p1 , p7
C3 ps13, ps9, p5
Tabela 32. Klasteri nakon ubacivanja zapisa p14

( ( (
 
E C1  
E C2  
E C3 Klaster

p15 2,908343195 2,676807589 2,716917187 p15


Tabela 33. Očekivane entropije klasterovanja za zapis p15

C1 ps2, ps16, p4, p6 ,p8 , p10 , p12 , p14

26
C2 ps11, ps3, p1, p7, p15
C3 ps13, ps9, p5
Tabela 34. Klasteri nakon ubacivanja zapisa p15
Očekivana entropija sistema nakon smeštanja svih zapisa u klastere je
2,676807589.

3.3.4. Određivanje najgore smeštenih zapisa i njihovo ponovno procesuiranje

Koliko neki objekat odgovara klasteru u kome se originalno nalazi utvrđuje se na


osnovu broja pojavljivanja svake od vrednosti njegovih atributa u tom klasteru.
Klasteri dobijeni nakon inkrementalnog koraka dati su u Tabelama 35, 36 i 37.

Color Size Act Age Klaster


ps2 YELLOW SMALL STRETCH CHILD C1
p4 YELLOW SMALL DIP CHILD C1
p6 YELLOW LARGE STRETCH CHILD C1
p8 YELLOW LARGE DIP CHILD C1
p10 PURPLE SMALL STRETCH CHILD C1
p12 PURPLE SMALL DIP CHILD C1
p14 PURPLE LARGE STRETCH CHILD C1
ps16 PURPLE LARGE DIP CHILD C1
Broj
pojavljivanja 4 PURPLE, 4 SMALL, 4 STRETCH, 8
vrednosti
8 CHILD
4 YELLOW 4 LARGE 4 DIP zapisa
atributa
Tabela 35. Klaster 1 : broj pojavljivanja vrednosti atributa, broj zapisa

Color Size Act Age Klaster


P1 YELLOW SMALL STRETCH ADULT C2
ps3 YELLOW SMALL DIP ADULT C2
P7 YELLOW LARGE DIP ADULT C2
ps11 PURPLE SMALL DIP ADULT C2
P15 PURPLE LARGE DIP ADULT C2
Broj
pojavljivanja 2 PURPLE, 3 SMALL, 1 STRETCH, 5
vrednosti
5 ADULT
3 YELLOW 2 LARGE 4 DIP zapisa
atributa

27
Tabela 36. Klaster 2 : broj pojavljivanja vrednosti atributa, broj zapisa

Color Size Act Age Klaster


p5 YELLOW LARGE STRETCH ADULT C3
ps9 PURPLE SMALL STRETCH ADULT C3
ps13 PURPLE LARGE STRETCH ADULT C3
Broj
pojavljivanja 2 PURPLE, 1 SMALL,
vrednosti
3 STRETCH 3ADULT 3 zapisa
2YELLOW 2 LARGE
atributa
Tabela 37. Klaster 3 : broj pojavljivanja vrednosti atributa, broj zapisa

U Tabeli 38 dat je pregled svih objekata takav da se pored vrednosti atributa nalazi
broj pojavljivanja te vrednosti u klasteru kome zapis pripada. Taj broj deli se sa
brojem zapisa u tom klasteru kako bi se dobila verovatnoća pojavljivanja te
vrednosti atributa u tom klasteru.

Color Size Act Age Klaster


p1 YELLOW | 3 SMALL | 3 STRETCH | 1 ADULT | 5 C2
p2 YELLOW | 4 SMALL | 4 STRETCH | 4 CHILD | 8 C1
p3 YELLOW | 3 SMALL | 3 DIP | 4 ADULT | 5 C2
p4 YELLOW | 4 SMALL | 4 DIP | 4 CHILD | 8 C1
p5 YELLOW | 1 LARGE | 2 STRETCH | 3 ADULT | 3 C3
p6 YELLOW | 4 LARGE | 4 STRETCH | 4 CHILD | 8 C1
p7 YELLOW | 3 LARGE | 2 DIP | 4 ADULT | 5 C2
p8 YELLOW | 4 LARGE | 4 DIP | 4 CHILD | 8 C1
p9 PURPLE | 2 SMALL | 1 STRETCH | 3 ADULT | 3 C3
p10 PURPLE | 4 SMALL | 4 STRETCH | 4 CHILD | 8 C1
p11 PURPLE | 2 SMALL | 3 DIP | 4 ADULT | 5 C2
p12 PURPLE | 4 SMALL | 4 DIP | 4 CHILD | 8 C1
p13 PURPLE | 2 LARGE | 2 STRETCH | 3 ADULT | 3 C3
p14 PURPLE | 4 LARGE | 4 STRETCH | 4 CHILD | 8 C1
p15 PURPLE | 2 LARGE | 2 DIP | 4 ADULT | 5 C2
p16 PURPLE | 4 LARGE | 4 DIP | 4 CHILD | 8 C1

28
Tabela 38. Broj pojavljivanja vrednosti atributa zapisa u klasteru kome zapis
pripada

Color Size Act Age Veličina


klastera
p1 3 3 1 5 5
p2 4 4 4 8 8
p3 3 3 4 5 5
p4 4 4 4 8 8
p5 1 2 3 3 3
p6 4 4 4 8 8
p7 3 2 4 5 5
p8 4 4 4 8 8
p9 2 1 3 3 3
p10 4 4 4 8 8
p11 2 3 4 5 5
p12 4 4 4 8 8
p13 2 2 3 3 3
p14 4 4 4 8 8
p15 2 2 4 5 5
p16 4 4 4 8 8
Tabela 39. Broj pojavljivanja vrednosti atributa deli se sa dužinom klastera kome
zapis pripada

Color Size Act Age Verovatnoća

p1 0,6 0,6 0,2 1 0,072


p2 0,5 0,5 0,5 1 0,125
p3 0,6 0,6 0,8 1 0,288
p4 0,5 0,5 0,5 1 0,125
p5 0,3333 0,6667 1 1 0,222222222
p6 0,5 0,5 0,5 1 0,125
p7 0,6 0,4 0,8 1 0,192
p8 0,5 0,5 0,5 1 0,125
p9 0,6667 0,3333 1 1 0,222222222
p10 0,5 0,5 0,5 1 0,125

29
p11 0,4 0,6 0,8 1 0,192
p12 0,5 0,5 0,5 1 0,125
p13 0,6667 0,6667 1 1 0,444444444
p14 0,5 0,5 0,5 1 0,125
p15 0,4 0,4 0,8 1 0,128
p16 0,5 0,5 0,5 1 0,125
Tabela 40. Verovatnoća za zapis dobija se korišćenjem formule (10)

U Tabeli 41 prikazani su zapisi sortirani u rastućem poretku prema vrednostima


verovatnoća.
p1 0.072
p2 0.125
p4 0.125
p6 0.125
p8 0.125
p10 0.125
p12 0.125
p14 0.125
p16 0.125
p15 0.128
p7 0.192
p11 0.192
p5 0.2222
p9 0.2222
p3 0.288
p13 0.4444
Tabela 41. Sortirane verovatnoće
Zapisi sa najmanjim verovatnoćama se ponovo klasteruju. Za m=10% klasteruju se
iznova tri zapisa sa vrha Tabele 41. Ponovo se za tačke p1, p2, p4 vrši postupak kao
u inkrementalnom koraku.

C1 ps16, p6 ,p8 , p10 , p12 , p14


C2 ps11, ps3, p7, p15
C3 ps13, ps9, p5
Tabela 42. Klasteri bez zapisa koji se ponovo procesuiraju

30
( ( (
 
E C1  
E C2  
E C3 Klaster

p1 2,342907646 2,240529464 2,063721876 C3


Tabela 43. Očekivane entropije klasterovanja za zapis p1

C1 ps16, p6 ,p8 , p10 , p12 , p14


C2 ps11, ps3, p7, p15
C3 ps13, ps9, p5, p1
Tabela 44. Klasteri nakon ubacivanja zapisa p1

( ( (
 
E C1  
E C2  
E C3 Klaster

p2 2,293111929 2,621771056 2,396168527 C1


Tabela 45. Očekivane entropije klasterovanja za zapis p2

C1 ps16, p6 ,p8 , p10 , p12 , p14, p2


C2 ps11, ps3, p7, p15
C3 ps13, ps9, p5, p1
Tabela 46. Klasteri nakon ubacivanja zapisa p2

( ( (
 
E C1  
E C2  
E C3 Klaster

p4 2,5 2,62555858 2,851161109 C1


Tabela 47. Očekivane entropije klasterovanja za zapis p4

Rezultat dobijen nakon ponovnog kalalsterovanja pojedinih zapisa dat je u Tabeli


48.

C1 ps16, p6 ,p8 , p10 , p12 , p14, p2, p4


C2 ps11, ps3, p7, p15
C3 ps13, ps9, p5, p1
Tabela 48. Klasteri nakon ubacivanja zapisa p4

Iz Tabele 47 vidi se da je očekivana entropija sistema 2.5, a pre ponovnog


klasterovanja ove tri tačke bila je 2,676807589.

31
3.4. Karakteristike, prednosti i nedostaci algoritma

Kulket je jedinstven, dobro definisan algoritam za klasterovanje koji koristi dobro


poznat pojam entropije kao prirodni i intuitivni način za povezivanje zapisa i na taj
način izbegava oslanjanje na arbitrarne matrice udaljenosti koje koriste neki drugi
algoritmi. [1]

Za razliku od drugih algoritama za klasterovanje kategoričkih podataka rezultati


koje daje Kulket su veoma stabilni za različite veličine uzoraka i vrednosti
parametra. [1]

Kulket se pokazao uspešnim u efikasnom klasterovanju velikih skupova podataka


sa kategoričkim atributima pošto nije neophodno posmatrati ceo skup da bi se
izračunala entropija klastera. Kako Kulket koristi tehniku očekivane entropije koja
prati MDL princip minimalnog kodiranja kako je već navedeno, to su i reprezentacije
klastera koje se dobiju za svaku tačku sažete. Zahvaljujući MDL principu sa kojim je
kompatibilan Kulket omogućava i inkrementalno procesuiranje zapisa bez potrebe
čuvanja prethodnih zapisa u memoriji pošto se čuvaju sažete reprezentacije
klastera koje one formiraju. [1]

U poređenju sa algoritmom za kategoričko klasterovanje Rok (eng. ROCK) Kulket


ima malu prednost u kvalitetu. Ipak najveća prednost Kulketa leži u činjenici da on
izbegava suvišna podešavanja i da je njegovo ponašanje u odnosu na jedini
parametar m izuzetno stabilno : male vrednosti m su dovoljne za dobre rezultate. U
poređenju sa Rokom, a nad velikim skupom podataka, Kulket je imao i značajnije
bolje vreme izvršenja. [1]

U radu je prezentovano da je korišćenje entropije ekvivalentno korišćenju


koeficijenata sličnosti, ali je neophodno naglasiti da entropija, za razliku od Jaccard

32
koeficijenta i SM koeficijenta, može da posluži kao mera sličnosti za bilo koji skup
vektora, a ne samo dvočlani. [1]

Kulket ima i izvesne nedostatke među kojima svakako spada i neophodnost


zadavanja broja klastera unapred.

Sledeći nedostatak jeste uticaj redosleda klasterovanja tačaka na kvalitet


klasterovanja. Tako je moguće da tačka koja se činila dobrim rešenjem za klaster u
jednom trenutku u sledećem, kada bude klasterovano još zapisa, bude
neodgovarajuća. [1]

Iz prethodnog nedostatka proizilazi da je i način zadavanja uzorka, pomoću kojeg


se inicijalizuju klasteri, a to je slučajan izbor zapisa, takođe nedostatak upravo zbog
značaja redosleda procesuiranja zapisa.

U nastavku, iako je kao prednost navedena činjenica da su male vrednosti m


dovoljne za dobre rezultate, kao nedostatak se može navesti korisničko zadavanje
m pošto se postavlja pitanje kolika je ta dovoljno mala vrednost.

33
4. KOMPONENTE

Svaki algoritam za klasterovanje sadrži nekoliko rešenja za specifične probleme koji


se javljaju u procesu klasterovanja (određivanje broja klastera, određivanje
kriterijuma punjenja klastera, odnosno funkcije cilja itd.). Ova rešenja, povezana su
u algoritamu, i definišu proces i strukturu algoritma. Mnoga od tih rešenja često se
pojavljuju u više algoritama pošto su i problemi koji se javljaju zajednički mnogim
algoritmima.

Novi algoritmi za klasterovanje najčešće uključuju često korišćena rešenja tipičnih


problema iz klasterovanja, ali i iz drugih algoritama mašinskog učenja. Problem je
što su ova rešenja obično integrisana u originalne algoritme koji nisu osmišljeni tako
da rešenja budu lako korišćena izvan algoritma. [5] Za prevazilaženje ovog
problema uvodi se pojam komponenti.

Komponente su dobro dokumentovana rešenja specifičnih problema koji se često


pojavljuju kod klasterovanja. Ideja je da se u originalnim algoritmima prepoznaju
tipični problemi klasterovanja i rešenja ovih problema, da se rešenja formalizuju na
način koji omogućava ponovnu primenu tih rešenja u osmišljavanju novih
algoritama. Za svaku komponentu potrebno je naznačiti kada i kako može biti
korišćena i koji problem rešava. [5]

4.1. Komponente algoritma Kulket

Kao što je već naznačeno, povezana rešenja specifičnih problema koji se


prepoznaju u procesu klasterovanja čine strukturu algoritma za klasterovanje. U
identifikaciji komponenata jednog algortima polazi se upravo od njegove strukture.

Za početno identifikovanje komponenata Kulket algoritama za klasterovanje


korišćena je modifikovana lista tipičnih problema partitativnog klasterovanja, data u
radu [5] . To suOriginalno problemi su :

34
1. Definisanje broja klastera
2. Inicijalizacija centroida
3. Merenje udaljenosti
4. Izračunavanje predstavnika
5. Kriterijum za zaustavljanje algoritma
6. Razdvajanje klastera
1. Definisanje broja klastera
2. Inicijalizacija centroida
3. Merenje udaljenosti
4. Izračunavanje predstavnika
5. Kriterijum za zaustavljanje algoritma
6. Razdvajanje klastera

Struktura algoritma prilagođena problemima sa kojima se susreće pristup


klasterovanju primenjen u Kulket algoritmu podrazumeva rešenja sledećih
problema :

1. Definisanje broja klastera


2. Definisanje uzorka
3. Inicijalizacija centroida
4. Selekcija klastera
5. Izračunavanje stepena pripadnosti tačke klasteru kome je dodeljena
6. Definisanje broja tačaka za koje se ponovo vrši selekcija klastera
7. Kriterijum za zaustavljanje algoritma

4.1.1. Definisanje broja klastera

Kod partitativnog klasterovanja od ključne važnosti je određivanje broja particija


skupa podataka. Na početku klasterovanja nije lako utvrditi koliko klastera može biti
oformljeno od skupa. Broj, a broj klastera ima ogroman uticaj na kvalitet klastera. .
[5]

35
Kulket algoritam predviđa eksplicitan, korisnički definisan, broj klastera. Korisnička
odluka se prvenstveno zasniva na znanju, pretpostavkama i praktičnom iskustvu.
Dakle, komponenta koju Kulket koristi za rešavanje problema definisanja broja
klastera po [5] je RANGE.

36
4.1.2. Definisanje uzorka

Za Kulket algoritam karakterističan je način inicijalizacije klastera. Naime, za


početne tačke klastera ne konkurišu sve tačke skupa, već samo odabrane
tačke koje formiraju uzorak. Zato se kao posebna komponenta izdvaja
rešenje problema definisanja uzorka, tj. definisanje njegove veličine i načina
odabira njegovih elemenata.

Kulket algoritam definiše slučajni odabir s zapisa iz skupa od N zapisa gde je s = N.


Dakle, kao i kod definisanja broja klastera, algoritam predviđa eksplicitni, korisnički
definisan, broj elemenata uzorka. Elementi uzorka potom se uzimaju slučajnim
odabirom.

Komponenta za rešavanje ovog problema liči na RANDOM komponentu [5] po


slučajnom odabiru elemanata uzorka, mada se tamo slučajno inicijalizuju prvi
centroidi roditelji, a kod Kulketa se slučajno odabiraju kandidati za inicijalizovanje
klastera.

4.1.23. Inicijalizacija centroida

Nakon određivanja broja klastera neophodno je iste snabdeti odgovarajućim


predstavnicima, odnosno centroidima kod numeričkih podataka. Centroidi su jako
značajni jer kao početna rešenja za klasterovanje utiču na kvalitet krajnjeg rešenja.
Takođe utiču na efikasnost procesa klasterovanja jer smanjuju broj računanja
udaljenosti između tačaka. Za razliku od hijerarhijskih algoritama za klasterovanje
gde se računaju udaljenosti između svih tačaka kod partititivnih algoritama računaju
se samo udaljenosti između tačaka i centroida. [5]

Kulket algoritam ne poznaje klasičan oblik centroida kao uporednih vrednosti u


odnosu na koje se računaju udaljenosti tačaka pošto je Kulket algoritam koji radi sa
nenumeričkim vrednostima atributa. Tako da problem “punjenja” klastera početnim
zapisima ne biva rešen nekom od ponuđenih komponenata u radu [5]. Pre će biti
da se ovaj problem rešava kombinacijom elemanata više različitih komponenata.

37
Kulket algoritam definiše slučajni odabir s zapisa iz skupa od N zapisa gde je s = N,
a potom predviđa korišćenje funkcije entropije za nalaženje dve najrazličitije tačke,
a to su one za koje je vrednost entropije najveća. Te tačke smeštaju se u dva
različita klastera Ii markiraju. Za svaki sledeći klaster, traži se odgovarajući zapis po
kriterijumu maksimuma minimalnih entropija klastera za svaki od preostalih zapisa.
Odnosno upoređuju se sličnosti preostalih zapisa sa zapisima iz klastera po
kriterijumu entropije. Za svaki zapis se utvrdi kojem klasteru više odgovara, a potom
se uzme zapis čija je vrednost najviša od svih odgovarajućih iI smešta se u sledeći
kalaster. Dakle, sledeći klaster puni se zapisom koji najmanje odgovara prethodnim
klasterima od svih odgovarajućih klastera. Isti postupak ponavlja se sve dok se
svaki klaster ne inicijalizuje.

Komponenta za rešavanje ovog problema liči na RANDOM komponentu [5] po


slučajnom odabiru tačaka uzorka, kao I i na LINEAR MAP komponentu[5] u delu u
kome se dve vrednosti za prva dva klastera nalaze kao najrazličitije (LINEAR MAP
komponenta uzima najudaljenije). Ipak zbog suštinski različitog pristupa odabira,
uslovljenog prirodom atributa podataka koji se klasteruju, najbolje je definisati dve
noveu komponentue. Prva Kkomponenta bi podrazumevala slučajni odabir zapisa
iz uzorka je Definisanje uzorka i već je opisana, a druga je ENTROPY. ENTROPY
podrazumevapotom određivanje najrazličitijih tačaka na osnovu entropije za prva
dva klastera, dok za početne vrednosti ostalih klastera max min kriterijum primenjen
na vrednosti funkcija entropije za prethodna dva klastera.

Za rešavanja ovog problema na osnovu mehanizma smeštanja zapisa u klastere


primenjenog u Kulket algoritmu moguće je identifikovati komponentu po imenu
ENTROPY. Za njen formalni opis koristi se definicija Tracz (1990) [7] .

Komponenta je triplet koji čine koncept, sadržaj i kontekst. Koncept je opis onoga
što komponenta radi, opisuje interfejs i značenje, predstavljajući preduslove i izlaze.
Sadržaj opisuje kako se komponenta realizuje, i to je sakriveno od običnog
korisnika. Kontekst objašnjava aplikacioni domen komponente, što pomaže u
pronalaženju adekvatne komponente za specifični problem. Ovakav opis

38
komponente pomaže u razumevanju kada i kako komponenta može da se primeni.
[7]
Component Name : ENTROPY
1. Concept:
Description: Meri različitost objekata korišćenjem entropije
Input: Uzorak i broj klastera
Output: Svi klasteri inicijalizovani početnim zapisom, izmerena međusobna
sličnost objekata iz uzorka, sličnost nemarkiranih objekata uzorka i klastera
koje su inicijalizovali markirani objekti, nemarkirani objekti
2. Context:
Application: Određuje najrazličitije tačke skupa. Meri sličnost tačaka, kao i
tačaka i klastera. Pretpostavlja kategoričke podatke.
3. Content:
Koristi entropiju za računanje sličnosti.

4.1.34. Selekcija klasteraMerenje udaljenosti

Selekcija klastera je analogna problemu merenja udaljenosti iz [5]. Naziv je


izmenjen zbog specifičnosti Kulket algoritma koja podrazumeva inkrementalni korak
u smeštanju zapisa u klastere, odnosno dovođenje pojedinačnog objekta,
izračunavanje očekivane entropije za k klastera i izbor klastera za koji je vrednost
očekivane entropije najmanja. Nakon toga dovodi se sledeći objekat i postupak se
ponavlja, ali sa klasterima izmenjenim prethodnim korakom u kome je neki od
klastera obogaćen objektom.

Udaljenost se kao problem klasterovanja javlja kada su vrednosti atributa


numerički. Kod kategoričkih podataka moguće je analogno merenju udaljenosti
govoriti o merenju sličnosti podataka.

Za rešavanja ovog problema na osnovu mehanizma smeštanja zapisa u klastere


primenjenog u Kulket algoritmu moguće je identifikovati komponentu po imenu
ENTROPY. Da bismo je formalno opisali koristimo definiciju Tracz (1990).

39
Komponenta je triplet koji čine koncept, sadržaj I kontekst. Koncept je opis onoga
što komponenta radi, opisuje interfejs I značenje, predstavljajući preduslove I
izlaze. Sadržaj opisuje kako se komponenta realizuje, što je sakriveno od običnog
korisnika. Kontekst objašnjava aplikacioni domen komponente, što pomaže u
pronalaženju adekvatne komponente za specifični problem. Ovaka opi komponente
pomaže u razumevanju kada I kako komponenta može da se primeni.[5]

Za rešavanja ovog problema na osnovu mehanizma smeštanja zapisa u klastere


primenjenog u Kulket algoritmu moguće je identifikovati komponentu po imenu
EXPECTED ENTROPY. Za njen formalni opis koristi se definicija Tracz (1990) [7].

40
Component Name : EXPECTED ENTROPY
1. Concept:
Description: Meri sličnost objekata Određuje optimalni klaster za objekat
korišćenjem očekivane entropije sistema
Input: Objekat Ii klasteri
Output: Objekat dodeljen klasteru sa najsličnijim objektima, izmerenea
sličnost objekta I klasteraentropije sistema za k mogućih klasterovanja
2. Context:
Application: Meri sličnost klastera I objektaOdređuje optimalni klaster za
objekat. Pretpostavlja kategoričke podatke.
3. Content:
Koristi očekivanu entropiju za računanje sličnostiodređivanje optimalnog
klastera za objekat.

4.1.45. Kriterijum za zaustavljenjeIzračunavanje stepena pripadnosti tačke klasteru


kome je dodeljena

Izračunavanje stepena pripadnosti tačke klasteru kome je dodeljena je problem koji


se teži da kvantitativno utvrdi koliko objekat zaista odgovara klasteru kome je
dodeljen. Rešenje ovog problema se može ujedno koristiti i za testiranje kvaliteta
prvobitno oformljenih klastera. Posledica rešavanja ovog problema jeste ponovno
procesuiranje najlošijih rešenja, odnosno tačaka koje najmanje odgovaraju klasteru
kome su dodeljene.

Rešenje (komponenta) identifikovano u Kulket algoritmu jeste utvrđivanje


verovatnoće pojavljivanja određene kombinacije vrednosti atributa u klasteru u
kome se zapis nalazi za svaki zapis, te potom ponovno klasterovanje m zapisa sa
najmanjim verovatnoćama. M je parametar koji definiše korisnik.

Za njen formalni opis koristi se definicija Tracz (1990) [7].

Component Name : PROBABILITY


1. Concept:

41
Description: Određuje meru pripadnosti objekta klasteru kome je dodeljen
korišćenjem verovatnoće pojavljivanja kombinacije vrednosti atributa objekta
u klasteru
Input: Objekat i klaster
Output: Verovatnoća kao mera pripadnosti objekta klasteru, izmerene
verovatnoće pojavljivanja kombinacije vrednosti atributa objekta u klasteru

2. Context:
Application: Određuje koliko objekat odgovara klasteru u kome se nalazi
3. Content:
Koristi verovatnoću da numerički izrazi koliko objekat zaista odgovara
klasteru kome je dodeljen.

4.1.6. Definisanje broja tačaka za koje se ponovo vrši selekcija klastera

Broj tačaka za koje se ponovo vrši selekcija klastera je u algoritmu Kulket jedini
parametar, označen sa m. Posle prvobitnog smeštanja svih zapisa u klastere i
izračunatih verovatnoća za svaki zapis ponovo se klasteruje m ili ako je m zadato

m
procentualno * N zapisa sa najmanjim verovatnoćama, gde je N ukupan broj
100
zapisa. Bitno je primetiti da od vrednosti m zavisi rezultat klasterovanja, mada treba
imati u vidu da je rešenje koje nudi Kulket stabilno za različite vrednosti parametra.

Za rešavanje izbora novog klastera za ovih m zapisa već je definisana komponenta


EXPECTED ENTROPY.

Rešenje koje nudi Kulket za problem određivanja vrednosti m jeste definisanje m od


strane korisnika.

4.1.7. Kriterijum za zaustavljanje algoritma

Algoritam za klasterovanje mora imati neki kriterijum za zaustavljanje procesa


mašinskog učenja. Kulket algoritam biva okončan u zavisnosti od parametra m, koji

42
označava broj iznova procesuiranih zapisa i korisnički je definisan. Za m=0
klasterovanje se okončava po smeštanju svih zapisa u klastere. Za druge vrednosti
m proces mašinskog učenja se okončava nakon što se posle prvobitnog smeštanja
svih zapisa u klastere ponovo klasteruje m zapisa ili ako je m zadato procentualno

m
* N zapisa, gde je N ukupan broj zapisa.
100

Dakle, okončanje izvršavanja Kulket algoritma je korisnički definisano .

43
Algoritma za klasterovanje mora imati neki kriterijum za zaustavljanje procesa mašinskog
učenja. Kulket algoritam biva okončan u zavisnosti od parametra m, koji označava broj
iznova procesuiranih zapisa I korisnički je definisan. Za m=0 klasterovanje se okončava po
smeštanju svih zapisa u klastere. Za druge vrednosti m proces mašinskog učenja se
okončava nakon što se posle prvobitnog smeštanja svih zapisa u klastere ponovo klasteruje

m
m zapisa ili ako je m zadato procentualno * N zapisa, gde je N ukupan broj zapisa.
100

4.1.5. Razdvajanje klastera

Razdvajanje klastera je problem koji se odnosi na pronalaženje klastera koji više


odgovaraju zapisima od onih u koje su prvobitno, odnosno u prethodnom koraku
smešteni. Rešenje ovog problema se može ujedno koristiti I za testiranje kvaliteta
klastera.

Rešenje (komponenta) identifikovano u Kulket algoritmu jeste za svaki zapis


utvrđivanje verovatnoće pojavljivanja određene kombinacije vrednosti atributa u
klasteru u kome se zapis nalazi, te potom ponovno klasterovanje m zapisa sa
najmanjim verovatnoćama. M je parametar koji definiše korisnik.

44
5. ZAKLJUČAK

U ovom radu izložen je algoritam kategoričkog klasterovanja Kulket zasnovan na


pojmu entropije. Algoritam grupiše objekte u skupu podataka pokušavajući da
minimizuje očekivanu entropiju klasteragrupacije klastera. Problem kategoričke
prirode atributa algoritam vešto rešava koristeći se funkcijama entropije i
verovatnoće pošto su matrice udaljenosti korišćene kod algoritama koji rade sa
numeričkim podoacima kod ovde neupotrebljive. Problem određivanja sličnosti
objekata rešava se korišćenjem svojstva entropije da predstavlja meru nereda, i da
je utoliko veća ukoliko je nered, odnosno neuređenost, odnosno različitost objekata
veća.

U radu algoritma primećeni su neki nedostaci koji se odnose na uticaj redosleda


procesuiraja zapisa na rezultat, ali je taj problem rešen ponovnim procesuiranjem
zapisa koj su najgore loše rešenje za klastere kojima su prvobitno dodeljeni.
Algoritam izbegava proizvoljnosti koje nastaju kada ima dosta parametara koje
korisnik deiniše. Tako se korisniku ostavlja da odredi broj klastera i da postavi
vrednost parametra m.

Evaluacija algoritma realizovana eksperimentima i predstavaljena u radu [1]


pokazyuje da je KULKET efikasan algoritam čija su rešenja stabilna za različite
veličine uzorka i da je skalabilan za velike skupove podataka (pošto inkrementalno
dodaje objekte na inicijalne klastere). U ovom radu samo su predstavljena dva
načina evaluacije rešenja koje daje algoritamda li klasteri imaju značaja u odnosu
na eksterne varijable tj. varijable koje nisu korišćene u procesu klasterovanja.

U poređenjima sa sličnim RokOK algoritmom, KulketULKET uvek pokazuje malu


prednost u kvalitetu merenja. [1] Ipak, prava prednsost KULKET algoritma jeste
lakoća podešavanja i činjenica da je ponašanje algoritma u odnosu na jedini
parametar (m) koji koristi izuzetno stabilno: male vrednosti m dovoljne su da se
postigne dobar rezultat.

45
Neke od mogućnosti primene algoritma su aplikacije povezane sa kalasterovanjem
dokumenata (web dokumenata) i bioinformatika.[1] Naravno, algoritam je primenljiv
na svaki problem koji zahteva grupisanje kategoričkih zapisa prema sličnosti, pa je
primenljiv u statistici, psihologiji (što pokazuje i skup podataka korišćen za primer
rada algoritma u ovom radu) i drugim disciplinama.

46
LITERATURA

[1] Daniel Barbara, Julia Couto, Yi Li,(2001) COOLCAT : An entropy-based


algorithm for categorical clustering, George Mason University, October 1, 2001.
[2] Naziv člankaNP-complete, http://en.wikipedia.org/wiki/NP_completePristupljeno
preko Interneta, mesec i godina pristupajun 2009. godine.
http://en.wikipedia.org/wiki/NP_complete
[3] Delibašić Boris, Suknović Milija, Jovanović Miloš,(2009) Algoritmi mašinskog
učenja za otkrivanje zakonitosti u podacima, FON, Beograd.
[4] Naziv člankaHeuristic, http://en.wikipedia.org/wiki/HeuristicPristupljeno preko
Interneta, mesec i godina pristupajun 2009.godine.

[5] Boris Delibašić, Kathrin Kirchner, Johannes Ruhland, Miloš Jovanović, Milan
Vukićević Reusable Components for Partitioning Clustering Algorithms.
http://en.wikipedia.org/wiki/Heuristic
[5] Boris Delibašić, Kathrin Kirchner, Johannes Ruhland, Miloš Jovanović, Milan
Vukićević Reusable Components for Partitioning Clustering Algorithms
[6] Pazzani, M. (1991.) The influence of prior knowledge on concept acquisition :
Experimental and computational results. Journal of Experimental Psychology :
Learning, Memory & Cognition, 17, 3, 416-432 , Naziv skupa podatakaBalloon
databases, Pristupljeno preko Interneta, mesec i godina pristupa.
http://archive.ics.uci.edu/ml/datasets/Balloons, jun 2009. godine.
[7] Tracz W (1990). Where does reuse start?. ACM SIGSOFT Software Engineering
Notes 15:42-46.

47

You might also like