fuzzy c means cluster

27
2011/2012

Upload: tanja

Post on 21-Oct-2015

53 views

Category:

Documents


8 download

DESCRIPTION

Fuzzy c Means Cluster

TRANSCRIPT

Page 1: Fuzzy c Means Cluster

2011/2012

Page 2: Fuzzy c Means Cluster

Definicija:Grupisanje je kategorizacija različitih podataka u grupe (podskupove, klastere) na način da podaci smješteni unutar jedne grupe imaju ista ili do određene mjere slična svojstva.

Cilj: ubrzati pronalaženje tačnih informacja

Kada imamao situaciju da se broj podataka nalazi u kompleksnim strukturama , potrebno je:olakšati pretraživanje tih podataka, grupisati ih prema logičkom redoslijedu , i prikazati te podatke kroz grupe s određenim obilježjima.

Grupisanje podataka koristi se u različitim područjima: data maining, analiza slike,prepoznavanje oblika,bioinformatika,biomedicinski inžinjering......

GRUPISANJE (CLUSTERING) PODATAKAGRUPISANJE (CLUSTERING) PODATAKA

Page 3: Fuzzy c Means Cluster

Fuzzy C-Means (FCM) Clustering?

Fuzzy c-means (FCM) je tehnika grupisanja podataka(clustering- klastering) u kojoj se jedan skup podataka grupiše u n grupa (klastera) tako da svaki podatak iz skupa podataka pripada svakom klasteru s određenim stepenom. Npr., jedan određeni podatak koji leži blizu centra jednog klastera će imati visok stepen pripadnosti (funkciju pripadnosti) u odnosu za taj klaster, a drugi podatak koji leži daleko od od centra jednog klastera će imati nizak stepen pripadnosti u odnosu na taj klaster.

Ovu metodu je razvijo Dunn u 1973. i poboljšao Bezdek u 1981.Često se koristi u prepoznavanju oblika.Bazira se na minimizaciji sljedeće ciljne funkcije:

uij je stepen pripadnosti od xi u klasteru cj

m je realni brojxi je i-ti podatakcj je j-ti klasterII * II bilo koja noram koja opisuje sličnost između bilo kojeg izmjerenog podatak i centra

Page 4: Fuzzy c Means Cluster

Fuzzy C-Means (FCM) clustering

Fuzzy particioniranje se dešava kroz iterativnu optimizaciju ciljne funkcije ažurirajući funkciju pripadnosti uij , i klusterski centar cj primjenom:

odnosno, jedna iteracija se bazira na minimizaciji jedne ciljne funkcije koja predstavlja distancu bilo kog podatak prema prema bilo kom klasterskom centru težiranom sa stepenom funkcije pripadnosti tog podataka.

Iteracija će se zaustaviti kada je zadovoljena relacija:

gdje je kriterij zaustavljanja između 1 i 0, dok se k odnosi na korak iteracije.Procedura konvergira lokalnom minimumu ili tački prevoja (sedla) od funkcije Jm

Page 5: Fuzzy c Means Cluster

1. Inicijalizacija matrice U=[uij] , U(0)

2. K-ti korak: računanje vektora centara C(k)=[cj] s U(k)

3. Ažuriranje U(k) , U(k+1)

4. Ako je || U(k+1) - U(k)||< tada STOP; inače vraćanje na korak 2.

Algoritam se sastoji iz sljedećih koraka:

Page 6: Fuzzy c Means Cluster

OBJAŠNJENJE OBJAŠNJENJE Podaci se vezuju za svaki klaster pomoću funkcije pripadnosti, koja predstavlja fuzzy obilježje, odnosno, ponašanje ovog algoritma. Da bi to uradili, potrebno je napraviti odgovarajuću matricu U čiji su elementi brojevi između 0 i 1, i predstavljaju stepen pripadnosti podataka u odnosu na centre klastera.Za bolje razumijevanje, pogledajmo ovaj jednostavni mono-dimenzionalni primjer. Imamo skup podataka koji su raspoređeni na osi kao na narednoj slici:

Ako pogledamo sliku možemo identifikovati dva klastera u neposrednoj blizini dva mjesta na kome su skoncentrisane grupe podataka. Nazvati ćemo ih A i B.

Prvi pristup: K-means povezuje svaki podatak s određenim centrom.Funkcija pripadnosti data je na slici.

Svaki podatak pripada isključivo samo jednom dobro definisanom klasteru.

Page 7: Fuzzy c Means Cluster

OBJAŠNJENJE OBJAŠNJENJE

Drugi pristup:Fuzzy C-Means (FCM)

Ovdje, isti podatak ne pripada isključivo jednom dobro definisanom klasteru, nego može bitit smješten na sredini . U ovom slučaju, funkcija pripadnosti slijedi blažu liniju da indicira da svaki podatak može pripadati više klastera s različitim vrijednostima funkcije pripadnosti.

Na slici, podatak predstavljen kao crvena tačka, više pripada klasteru B nego klasteru A. Vrijednost m = 0.2 označava stepen pripadnosti podatka klasteru A. Umjesto grafičke reprezentacije sada imamo matricu U čiji su elementi uzeti iz funkcija pripadnosti.

Page 8: Fuzzy c Means Cluster

OBJAŠNJENJE OBJAŠNJENJE

Broj redova i kolona zavisi od toga koliko podataka i klastera razmatramo respektivno. Preciznije, imamo C = 2 kolone (C = 2 klastera) i N redova, gdje je C ukupni broj klastera, a N ukupni broj podataka. Generički element se obilježava sa uij. U gornjem primjeru smo razmatrali k-means i FCM slučajeve. Možemo primijetiti da su u k-means slučaju koeficijenti uvijek cijeli brojevi. To znači da svaki podatak može pripadati samo jednom klasteru. Ostale osobine su prikazane u nastavku.

Page 9: Fuzzy c Means Cluster

PRIMJERPRIMJERRazmotriti ćemo jednostavan slučaj mono-dimenzionalne primjene FCM. Koristili smo dvadeset podataka i tri klastera za inicijalizaciju algoritma i izračunavanje U matrice. Naredne slike prikazuju vrijednost pripadnosti za svaki podatak i klaster. Boja podatka je jednaka onoj od najbližeg klastera prema funkciji pripadnosti.

Nije izvršen niti jedan korak i klasteri nisu dobro identifikovani.Slika prikazuje inicijalno stanje gdje fuzzy raspodjela zavisi od pozicije klastera.

U simulaciji prikazanoj na slici korišten je koeficijent fuzzyness-a m = 2 i nametnuto je terminiranje algoritma kada

je zadovoljeno

.

Page 10: Fuzzy c Means Cluster

PRIMJERPRIMJER

Nakon pokretanja algoritma, poslije osam koraka dolazimo do sljedeće slike:

Da li je moguće postići bolje rezultate?

Page 11: Fuzzy c Means Cluster

PRIMJERPRIMJER

Naravno,možemo koristiti veću preciznost ali se troši više resursa na izračunavanje. Na narednoj slici vidimo da smo dobili bolje rezultate s ε =0.01, ali je bilo potrebno 37 koraka.

Napomena:Različite inicijalizacije uzrokuju različite evolucije algoritma. Zapravo, vjerovatno bi konvergirao istom rezultatu, ali s različitim brojem koraka iteracije.

Page 12: Fuzzy c Means Cluster

http://home.dei.polimi.it/matteucc/Clustering/tutorial_html/AppletFCM.html

Page 13: Fuzzy c Means Cluster

Fuzzy C-Means -Fuzzy Logic Toolbox

fcm (Fuzzy Logic Toolbox™ funkcija) izvršava FCM klastering.

1. Startuje s jednim inicijalnim prijedlogom za svaki klasterski centar, koji su namjenjeni da označe srednju lokaciju svakog klastera. Inicijalni prijedlog za ove klasterske centre je s velikom vjerovatnoćom netačan.

2.fcm pridružuje svakom podatku stepen funkcije pripadnosti u odnosu na svaki klaster.

3.fcm vrši iterativna računanja (ažuriranja) klasterskih centara i i stepena pripadnosti za svaki podatak Jedna iteracija se bazira na minimizaciji ciljne funkcije koja predstavlja distancu bilo kog podatak prema prema bilo kom klasterskom centru težiranom sa stepenom funkcije pripadnosti tog podataka.

Page 14: Fuzzy c Means Cluster

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

load fcmdata.datplot(fcmdata(:,1),fcmdata(:,2),'o')%Next, invoke the command-line function fcm to find two clusters in this %data set until the objective function is no longer decreasing much at all.pause;

PRIMJER 1

Page 15: Fuzzy c Means Cluster

1 2 3 4 5 6 7 8 9 10 113

4

5

6

7

8

9Objective Function Values

Iteration Count

Obje

ctive F

unction V

alu

e

%Here, the variable center contains the coordinates of the two cluster centers, U contains the membership grades for each of the data points, and objFcn contains a history of the objective function across the iterations. %This command returns the following result: %Iteration count = 1, obj. fcn = 8.794048%Iteration count = 2, obj. fcn = 6.986628.....%Iteration count = 12, obj. fcn = 3.797430 %The fcm function is an iteration loop built on top of the following routines:%initfcm — initializes the problem%distfcm — performs Euclidean distance calculation%stepfcm — performs one iteration of clustering %To view the progress of the clustering, plot the objective function by typing the following commands: figureplot(objFcn)title('Objective Function Values')xlabel('Iteration Count') ylabel('Objective Function Value') pause;

Page 16: Fuzzy c Means Cluster

%Finally, plot the two cluster centers found by the fcm function using the following code: maxU = max(U);index1 = find(U(1, :) == maxU);index2 = find(U(2, :) == maxU);figureline(fcmdata(index1, 1), fcmdata(index1, 2), 'linestyle',...'none','marker', 'o','color','g');line(fcmdata(index2,1),fcmdata(index2,2),'linestyle',...'none','marker', 'x','color','r');hold onplot(center(1,1),center(1,2),'ko','markersize',15,'LineWidth',2)plot(center(2,1),center(2,2),'kx','markersize',15,'LineWidth',2)pause;

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Page 17: Fuzzy c Means Cluster

PRIMJER : 2D FCM

Page 18: Fuzzy c Means Cluster

Interaktivni rad s FCMPrimjenom fcmdemo komande, pokreće seGUIkoji dozvoljava da se postave različiti parametriza FCM i da se pri tome posmatra efekat na rezultujući 2-D klastering. Izabere se jedan skup podataka i proizvoljan broj klastera, a zatim se pokrene dugme START da se startuje FCM proces koji se bazira na funkciji fcm.

1. Kada se klastering završi , mozemo izabrati jedan klaster ako kliknemo na njega i pogledati površinu funkcije pripadnosti ako aktiviramo dugme Plot MF. (za boji pogled treba kliknuti i ući u figuru u cilju rotiranja.

2. Mogu se podesiti tri opcionalna parametra za

za FCM algoritam: a)eksponent b)maksimalni broj iteracija c) minimalni iznos poboljšanja

a zatim posmatrati kako se klastering proces mijenja.

Page 19: Fuzzy c Means Cluster
Page 20: Fuzzy c Means Cluster

 Kada nismo sigurni koliko tačno treba klastera za određeni tip podataka, tada koristimo Subclust funkciju koja se bazira na metodi Subtractive clustering (Odbacujuće grupisanje).Ovo je brz jednopotezni algoritam za procjenu:a) broja klastera i b) klaster centara u skupu podataka.

KLASTER PROCJENA koja je dobijena subclust funkcijom se koristi za:a) inicijalizaciju iterativnih optimizacijski-baziranih klaster metoda (fcm) i b) inicijalizaciju metoda identifikacije modela tipa ANFIS. U okviru ANFISA koristi se Genfis2 funkcija (gradi se na subclust funkciji) da bi :a) osigurala brzu jednopoteznu metodu za preuzimanje ulazno-izlaznih trenirajućih podataka i b) generiše Sugeno fuzzy sistem koji modelira ponašanje podataka.(više epoha)

Page 21: Fuzzy c Means Cluster

U ovom primjeru, primjenjuje se genfis2 funkcija za modeliranje relacije odnosa intenziteta crvenila i iznosa 5 različitih simptoma koji su potencijalni doprinosioci tom crvenilu.

Podaci su uzeti sa 100 tačaka kožne zone prekrivene jače ili slabije crvenilom.

Uazi u model su: simptom1simptom2simptom3simptom4simptom5

Dakle, model ima pet ulaznih varijabli i jednu izlaznu varijablu.75 trenirajućih parova će se uzeti za treniranje, a 25 trenirajućih parova za validaciju (checking).

Primjer: Odbacujuće grupisanjePrimjer: Odbacujuće grupisanje

Page 22: Fuzzy c Means Cluster
Page 23: Fuzzy c Means Cluster

fismat

Page 24: Fuzzy c Means Cluster

fismat2

Page 25: Fuzzy c Means Cluster

fismat:sug51, testnifismat:sug51, checking

fismat2:sug52, checkingfismat2:sug52, testni

Page 26: Fuzzy c Means Cluster
Page 27: Fuzzy c Means Cluster

27