Gruparea (si clasificarea) fuzzy a datelor Introducere Aspecte teoretice generale Gruparea tranșantă Metode fuzzy FCM SC Utilizarea metodelor fuzzy în matlab. Exemplificare
Introducere (1) Obiectivul grupării datelor: împărțirea setului de date în grupuri (clustere, clase) de date similare Scopul gruparii este de a identifica grupurile naturale de date dintr-un set mare de date care reprezintă comportarea unui sistem. Exemple de obiecte de grupat (clasificat, recunoscut): clientii unei banci, email-uri, zone de interes din imagini, persoane sanatoase sau bolnave, sortimente de vin, clase de flori, regiuni ale unor functii neliniare multivariabile, etc. Împartirea in grupuri se realizează pe baza unei mulțimi de trăsături (caracteristici, atribute, proprietati) ce descriu fiecare formă sau obiect (ex. pentru florile de iris: latimea si lungimea sepalei si latimea si lungimea petalei) În practica pot exista un număr mare de obiecte de grupat (eșantioane) descrise prin mai multe trasaturi gruparea automată a datelor
Introducere (2) Rezultatul grupării: o structura fixa a datelor centrul grupurilor (localizarea grupurilor) forma grupurilor gradul de apartenentă al fiecarui obiect la fiecare grup Este utilizata extensiv pentru aplicatii de: recunoasterea formelor (pattern recognition), extragere de caracteristici, segmentarea imaginilor, aproximarea functiilor, identificarea sistemelor data mining. In actiunea de grupare a datelor nu se cunoaste apriori valoarea dorita a iesirii, asadar gruparea datelor utilizează metode de invățare nesupervizată: identifica anumite structuri inerente prezente intr-un set de obiecte, pe baza unei masuri de similitudine.
Împărțirea datelor in grupuri trebuie sa aiba doua caracteristici: omogenitate in grupuri; obiectele din acelasi grup trebuie sa fie cat se poate de asemanatoare între ele eterogeneitate intre grupuri; obiectele din grupuri diferite sa fie cat se poate de diferite unele de altele cea mai potrivita masura a similitudini dintre obiecte este distanta dintre obiecte, de exemplu distanta euclidiana Exemplu de grupare in spatiul bidimensional Introducere (3) grupare
Introducere (4) Gruparea datelor (clustering) este procesul de descoperire a grupurilor si structurilor de date care sunt similare din intregul setul de date, fara a utiliza structuri de date cunoscute apriori. Împărțirea obiectelor în grupuri (clustere) Clasificarea datelor (classification) este procesul de generalizare a unei structuri cunoscute pentru a fi aplicata la date noi. Repartizarea unui obiect nou la unul dintre grupuri (clustere).
Aspecte teoretice Datele se reprezintă sub forma de vectori N-dimensionali obiectul (exemplarul) i: xi [ xi1, xi2,..., xin], xi R, i 1,..., N M N numărul de trăsături ale fiecarui obiect (dimensiunea trasaturilor) M numărul de obiecte (dimensiunea setului de date) X x x x 11 21 M1 trasaturi, j x x x 12 22 M 2 x x x 1N 2N MN o b i e c t e i Obiectivul gruparii este de a gasi a) K vectori centrele grupurilor ck x, x,..., x ], k 1,..., [ k1 k 2 kn b) Matricea gradelor de apartenența, cu dimensiunile M x K (M linii, K coloane) K
Gruparea tranșantă (clasică) In gruparea transanta un obiect apartine în totalitate sau nu apartine deloc unui grup, adica gradul său de apartenenta la un anumit grup este fie 1, fie 0. Pentru o partitionare in K grupuri, C k, k=1,, K C k C C k l K k 1, C k X X, 1 1 Fiecare obiect apartine unui grup nu exista grupuri vide nu exista niciun grup care să contina toate obiectele. k k l K K
Exemplificare Grupare (partitionare in trei grupuri): G, G, 1 2 G3 U matricea gradelor de apartenenta G 1 G2 G3 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 1 0 Obiectul x10 este plasat in grupul G 2 desi in mod intuitiv nu ar trebui inclus in nici unul dintre grupuri x10 poate fi considerat ca un punct exceptional (atipic), sau chiar zgomot (outlier)
Cele mai frecvente situatii reale nu permit o astfel de grupare clara, neambigua; domeniile corespunzatoare claselor fiind mai degraba suprapuse In aceste cazuri este de preferat o partitionare in care un obiect poate apartine la mai multe grupuri in acelasi timp, cu grade diferite de apartenenta, in domeniul [0, 1] Exista 2 tipuri de astfel de partitionari: fuzzy posibilistic astfel x10, ar putea apartine cu diferite grade de apartenenta la toate cele trei grupuri, intuitiv o valoare foarte scazuta, de exemplu 0.1, caz in care conditia de partitie (fuzzy) ca suma gradelor de apartenenta la toate grupurile sa fie 1 nu mai este indeplinita.
Măsuri pentru distanţă Un factor important ce determina rezultatul partitionarii datelor este metoda de determinare a distantei dintre obiecte. distanta este masurata in spatiul trasaturilor Cea mai frecvent utilizata masura este norma euclidiana: distanta geometrica intre doua puncte din spatiul X. In cazul punctelor: x x p q [ x [ x p1 q1,, x x p2 q2,,...,..., x x pn qn ] ]; exemplificare pentru spatiul bidimensional D pq N 2 xpj xqj xp xq 2 j1 p-norma, p 1 numar real
Fuzzy C-means (FCM) Fuzzy c-means (FCM) este o metoda de grupare a datelor in care fiecare obiect apartine unui grup intr-un anumit grad, specificat de gradul de apartenenta Metoda a fost introdusa de Jim Bezdek in 1981 Este o metoda care arata cum să se grupeze obiectele ce populează un spatiu multidimensional intr-un numar specificat de grupuri diferite. functia fcm din Fuzzy Logic Toolbox porneste cu o estimare initiala a centrelor grupurilor, menite sa marcheze locatia medie a fiecarui grup. Estimarea initiala a centrelor este, cel mai probabil, incorecta. In plus, fcm atribuie initial in mod aleator fiecarui obiect un grad de apartenenta la fiecare grup Prin actualizarea iterativa a centrelor grupurilor si a gradelor de apartenenta a tuturor obiectelor, fcm deplaseaza iterativ centrele in locatiile cele mai potrivite setului de date. Aceasta iterare (optimizare) se bazeaza pe minimizarea functiei obiectiv: suma ponderata a distantelor fiecărui obiect la fiecare centru de grup, ponderile fiind gradele de apartenenta a obiectelor la grupuri.
Functia obiectiv: J K Fuzzy C-means (FCM) M k1 i1 m ( ik) xi ck 2 m - constantă mai mare ca 1 (tipic: 2) ce indică gradul de nuanțare (fuzzines) a grupelor rezultate. Minimizarea J - suma distantelor pentru obiecte la centrele de grup, ponderate cu gradul de apartenenta al obiectelor la grupuri. Cu cat distanta este mai mica, cu atat ponderea (gradul de apartenenta la acea clasa) va fi mai mare Cu cat distanta este mai mare, cu atat ponderea (gradul de apartenenta la acea clasa) va fi mai mica 1 ik 2 /( m1) K xi ck Gradele de apartenenta: 1 j xi c j
options = genfisoptions('fcmclustering'); Fuzzy C-means (FCM) in Matlab In Fuzzy Logic Toolbox exista functia fcm [CENTER, U, OBJ_FCN] = fcm(data, N_CLUSTER,OPTIONS) Functia întoarce: Matricea centrelor: o matrice cu centrele grupurilor; fiecare rand al matricii contine coordonatele unui centru de grup Matricea gradelor de apartenenta: matricea contine gradele de apartenenta a fiecarui punct (obiect) din setul de date la fiecare grup; fiecare rand contine gradele de apartenenta a unui punct la fiecare grup (in ordinea grupurilor) Valorile functiei obiectiv
options = genfisoptions('fcmclustering'); Fuzzy C-means (FCM) in Matlab Functia matlab genfis3 (genfis, cu options = genfisoptions('fcmclustering') pentru versiunile 2019) genereaza automat un SLF (Sugeno sau Mamdani) pe baza rezultatelor furnizate de fcm. Acest slf poate fi utilizat cu rol de clasificator (sistem de recunoastere a formelor)
FCM In general centrele grupurilor nu coincid cu nici un obiect de clasificat Multimile fuzzy sunt multidimensionale Demo matlab: fcmdemo: X_data, set5
FCM Clasificare in trei clase (Data set 5) Multimea fuzzy bidimensionala pentru clasa rosie
Clasificarea substractivă Algoritm rapid, într-o singură trecere, fără optimizare Determina numărul de grupuri şi centrele grupurilor dintr-un set de date Trebuie precizată valoarea unei raze ce specifică domeniul de influenţă al centrului în fiecare dimensiune a datelor, presupunând că datele se află în interiorul unei hipercutii unitate (unit hyperbox) Presupune că fiecare punct de date este un potenţial centru de grup şi calculează probabilitatea ca acesta să definească un centru pe baza densităţii punctelor înconjurătoare 1. Selectează punctul cu cel mai mare potenţial ca fiind primul centru de grup 2. Înlătură punctele din vecinătatea centrului determinat anterior (în conformitate cu raza precizată) în scopul determinării următorului grup şi a centrului ei 3. Continua acest proces până când toate datele se află în raza de influenţă a unui centru de grup.
Clasificare substractiva in Matlab In Fuzzy Logic Toolbox exista functia subclust [C,S] = subclust(x,radii,xbounds,options) Functia intoarce: Centrele grupurilor in matricea C. Fiecare rand al lui C contine coordonatele (pozitia) unui centru de grup Un vector S care contine valorile sigma ce specifica domeniul de influenta a centrelor pe fiecare dimensiune (trasatura) a datelor Centrele au aceleasi valoare sigma pe fiecare dimensiune a datelor. Valoarea sigma reprezinta abaterea standard utilizata pentru a defini multimi fuzzy gaussiene, pe fiecare dimensiune a datelor A( x) ( xc) 2 2 ( x) e ; c, A 2 0
Clasificare substractiva in Matlab Functia matlab genfis2 (genfis, cu options = genfisoptions(subtractiveclustering') pentru versiunile 2019) genereaza automat un slf, de tip TS pe baza rezultatelor furnizate de subclust. SLF generat poate fi utilizat cu rol de clasificator (sistem de recunoastere de forme)
SC Multimile fuzzy pentru prima dimensiune a datelor (prima coloana) x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 Centrul grupului coincide intotdeauna cu unul dintre obiectele de clasificat Se pot construi multimi fuzzy pe fiecare dimensiune (trasatura) a datelor (acestea vor trebui ordonate crescator)
y Ydata 6 4 2 1 2 3 4 5 6 7 x Xdata 1 Clasa 1 Clasa 2 Clasa 3 u 0.5 0 1 2 3 4 5 6 7 x Xdata 1 u 0.5 Clasificarea (recunoasterea) Cine este clasificatorul?? Care sunt intrarile? Care sunt iesirile? u u 0 1 0.5 0 1 0.5 0 1 2 3 4 5 6 7 y Ydata 1 2 3 4 5 6 7 x 1 2 3 4 5 6 7 y
Clasificatorul O data construit, clasificatorul (sistem de recunoastere de forme) poate fi utilizat pentru clasificarea (recunoasterea) oricarui nou obiect
Clasificatorul clasa1 clasa2 clasa3 1 2 3 clasa Nu suntem interesati de rezultatul defuzzificarii, ci de gradele de activare a fiecarei reguli, fiecare regula reprezentand o clasa O data construit, clasificatorul (system de recunoastere de forme) poate fi utilizat pentru clasificarea (recunoastertea orcarui nou obiect)
Clasificatorul 0.2911 0.1453 0.0228 Simulare matlab
Problema Se implementeaza un sistem de recunoastere de forme, considerand 3 trasaturi ale acestora: Tr1[0, 50], Tr2[-10, +22], respectiv Tr3[40, 90]. In urma aplicarii algoritmului de clasificare substractiva, s-au obtinut: 20 _ centre_ grupuri 35 10 0 50 75 coordonate ; sigma 10 8 15 a) Cate grupuri (clase) au rezultat in urma clasificarii substractive? b) Reprezentati multimile fuzzy ce se pot defini pe fiecare din cele trei trasaturi. c) Care sunt regulile sistemului fuzzy de recunoastere a formelor? d) Pentru o forma cu valorile trasaturilor: Tr1*=30, Tr2*= 5, Tr3*=65, care sunt gradele de activare a regulilor? e) In cazul de la punctul anterior, in ce clasa va fi recunoscuta forma, daca decizia se ia dupa maximul gradelor de activare a regulilor? f) In ce clasa va fi recunoscuta forma cu valorile trasaturilor Tr1**=35, Tr2**=0, Tr3**=75? Justificati raspunsul.