Sunteți pe pagina 1din 5

Referat 1.

Tehnici de grupare a datelor


Daiana-Elena Tudose
Facultatea de Automatică și Calculatoare
Departamentul de Automatică și Informatică Aplicată
Universitatea Politehnica Timișoara,
Timișoara, România
daiana.tudose@student.upt.ro

Abstract—În acest referat am rezolvat două dintre cerințele


(din cele patru) propuse. Am elaborat o documentație a Modul în care funcționează algoritmul k-means este
funcțiilor kmeans și fitgmdist din Matlab. Aceasta cuprinde o următorul:
descriere a funcționalităților, prezentarea argumentelor de
1. sunt selectate arbitrar cele K centre ale grupurilor
intrare și ieșire, informații despre algoritmul de implementare,
precum și exemple de rulare și afișare a datelor. De asemenea, 2. pasul de atribuire – fiecare grup Ci va conține acele
am testat algoritmul EM pentru gruparea datelor din setul instanțe din D care sunt mai appropriate de centrul ci
WBCD folosind un model GMM conform cerinței problemei 3. decât față de oricare alt centru cj (i≠j)
3. pasul de recalculare a centrelor fiecărui grup –
Keywords—tehnici de grupare, k-means, fitgmdist, pentru fiecare grup vor fi recalculate centrele cu
expectation-maximization. 1
ajutorul formulei 𝑐𝑖 = |𝐶 | ∑𝑥∈𝐶𝑖 𝑥, |𝐶𝑖 | reprezentând
𝑖
numărul instanțelor din grupul aferent Ci
I. PROBLEMA 1 4. pașii 2 și 3 se reiau până când centrele nu se vor mai
schimba
A. Functia K-MEANS
În cadrul aplicatiei Matlab, funcția k-means are mai
Analiza unui cluster este sarcina de a grupa un set de
multe sintaxe.
obiecte în așa fel încât obiectele din același grup (numit
idx=kmeans(X,k) împarte punctele în matricea de date X
cluster) să fie mai asemănătoare (după un anume criteriu)
cu N rânduri și P coloane în clustere K și returnează un vector
între ele decât cu cele din alte grupuri. Gruparea acestor date
coloană cu N rânduri (idx) conținând indicii ale fiecărei
reprezinta unele dintre sarcinile de bază din arii de procesare
observații. Rândurile lui X corespund punctelor iar coloanele,
a datelor, precum data mining și învățare automată.
variabilelor.
Definirea grupelor se face prin mai multe modalități, de
idx=kmeans(X,k,Name,Value) returnează indicii
unde rezultă mai multe modele de grupare și, respectiv,
clusterului cu opțiuni suplimentare specificate de unul sau
diverși algoritmi.
mai multe argumente de tip nume și valoare.
Algoritmul k-means este un algoritm iterativ, efectuând
[idx,C]=kmeans(X,k) returnează locațiile centrului
îmbunătățiri la fiecare pas și convergând la o soluție local
grupului în matricea C cu K linii și P coloane.
optimală, care încearcă să partiționeze un setul de date în K
[idx,C,sumd]=kmeans(X,k) returnează sumele distațelor
grupuri dinstincte și nesuprapuse, numite clustere. Fiecare
punct-centru din interiorul clusterului în vectorul coloană
punct de date îi aparține unui singur grup. Încearcă să facă
SUMD care are K rânduri.
instanțele inter-cluster cât mai similare posibil, păstrând, de
[idx,C,sumd,D]=kmeans(X,k) returnează de la fiecare
asemenea, clusterele cât mai diferite posibil.
punct la fiecare centru în matricea D care are N rânduri și K
Fie un set de instanțe care au d attribute numerice
coloane.
măsurate de forma 𝐷 = {𝑥1 , … , 𝑥𝑛 }, 𝑥𝑖 ∈ ℜ𝑑 . Problema k-
[...]=kmeans(...,'param1',val1,'param2',val2,...)
means este aceea de a atribui cele n instanțe date unor K
specifică opțional perechi de parametrii nume-valoare, pentru
grupuri (sau clustere) Ci caracterizate de centrele din
a controla algoritmul iterativ folosit de tehnica k-means.
mulțimea 𝐶 = {𝑐𝑖 ∈ ℜ𝑑 , 𝑖 = 1, 𝐾}. Parametrii valizi pentru această sintaxă sunt următorii:
Problema de optimizare specifică k-means este formulată distance, start, replicates, options, maxiter, emptyaction,
în relația display.
Un exemplu aferent apelării funcției kmeans a fost făcut
2
𝐜𝑖* = 𝑎𝑟𝑔 𝑚𝑖𝑛 𝐽(𝐜𝑖 ) = ∑𝐾𝑗=1 ∑𝐱𝑖∈𝐶𝑗‖𝐱𝑖 − 𝐜𝑗 ‖ (1) în următorul program Matlab.
𝐜𝑖

ProgramKmeans
X = forestfires(:,9:10);
figure;
plot(X(:,1),X(:,2),'k*','MarkerSize',5);
title 'Date incendii paduri negrupate';
xlabel 'Temperatura';
ylabel 'RH';
rng(1);
[idx,C] = kmeans(X,3);
x1 = min(X(:,1)):0.01:max(X(:,1));
x2 = min(X(:,2)):0.01:max(X(:,2));
[x1G,x2G] = meshgrid(x1,x2);
XGrid = [x1G(:),x2G(:)];
idx2Region = kmeans(XGrid,3,'MaxIter',1,'Start',C);
figure;
gscatter(XGrid(:,1),XGrid(:,2),idx2Region,...
[0,0.75,0.75;0.75,0,0.75;0.75,0.75,0],'..');
hold on;
plot(X(:,1),X(:,2),'k*','MarkerSize',5);
title 'Date incendii grupate';
xlabel 'Temperatura';
ylabel 'RH';
legend('Regiune 1','Regiune 2','Regiune 3','Date','Centroizi', 'Location','SouthEast');
hold off;

Rezultatele programului sunt seturile de date negrupate și Gaussian este un model probabilistic care presupune că toate
apoi grupate care sunt reprezentate de figurile 1-a și 1-b. punctele de date sunt generate dintr-un amestec dintr-un
număr finit de distribuții Gaussiene cu parametri necunoscuți.
Modelele mixte, în general, nu necesită știința cărui grup
aparține un punct de date, permițând modelului să învețe
automat clusterele.
Amestecul Gaussian este o funcție care este alcătuită din
mai mulți gaussieni, fiecare identificat prin k ∈ {1, ..., K},
unde K este numărul de clustere din setul de date. Fiecare k
Gaussian din amestec cuprinde următorii parametri:
• O medie μ care îi definește centrul.
• O covarianță Σ care îi definește lățimea. Acest lucru
ar fi echivalent cu dimensiunile unui elipsoid într-un
scenariu multivariat.
• O probabilitate de amestecare π care definește cât de
mare sau mică va fi funcția Gaussiană.

Funcția fitgmdist() conduce la calculul parametrilor


unui număr de grupuri folosind algoritmul Expectation-
Maximization.
Algoritmul Expectation-Maximization generalizează
Fig. 1-a. Setul de date negrupat algoritmul k-means prin faptul că o instanță a unui set de date
grupat nu mai aparține doar unui singur grup de ci aparține,
cu diverse grade de probabilitate, tuturor grupurilor. De
asemenea, algoritmul EM are capacitatea de a grupa
instanțele incomplete în care o parte din atribute sunt
nemăsurate(ascunse).
În cadrul aplicației Matlab, funcția fitgmdist are
următoarele sintaxe.
GMModel=fitgmdist(X,k) returnează o distribuție a
amestecului Gaussian cu componentele K la datele din X. X
este o matrice cu N linii și D coloane. Liniile din X corespund
observațiilor. Coloanele corespund variabilelor. Fitgmdist se
potrivește modelului cu proababilitate maximă, folosind
algoritmul Expectation-Maximization.
GMModel=fitgmdist(X,k,’param1’,val1,’param2’,val2
…) permite specificarea perechilor de parametri nume -
valoare pentru a specifica detaliile modelului și pentru a
controla algoritmul iterativ. Parametrii valizi pentru această
sintaxă sunt următorii: start, replicates, covariancetype,
sharedcovariance, regularizationvalue, options.
Exemplificarea funcției fitgmdist() a fost realizată pe
Fig. 1-b. Setul de date grupat același set de date ca și în cazul anterior folosind următorul
program Matlab.

B. Funcția FITGMDIST
Cu ajutorul funcției fitgmdist, se aplică un amestec de
distribuție Gaussian al datelor. Un model de amestec
ProgramFitgmdist
X = forestfires(:,9:10);

x1=min(X(:,1)):0.01:max(X(:,1));
x2=min(X(:,2)):0.01:max(X(:,2));
[xx,yy]=meshgrid(x1,x2);
gridDataSet=[xx(:),yy(:)];
hold on
GMM=fitgmdist(X,3);
GMM.mu,
GMM.Sigma,
idxGmm=cluster(GMM,gridDataSet);
idxGmmData=cluster(GMM,X);
gscatter(gridDataSet(:,1),gridDataSet(:,2),idxGmm,[0,0.8,0.8;0.8,0,0.8;0.8,0.8,0,]),
hold on
gscatter(X(:,1),X(:,2),idxGmmData)
hold on
xlabel('procent alcool')
ylabel('procent acid malic')
title('Fitgmdist in EM')
legend('Regiune 1','Regiune 2','Regiune 3', 'Location','SouthEast');
figure,silhouette(X,idxGmmData)
hold off;

Rezultatele programului sunt prezentate în Figura 2.

Fig. 3. Coeficientul de siluetă


Fig. 2. Graficul funcției fitgmdist în EM

Coeficientul de siluetă folosind algoritmul Expectation-


Maximization este reprezentat în Figura 3.
II. PROBLEMA 2 Pentru rezolvarea problemei a fost folosit algoritmul EM
cu GMM folosit la exemplificarea anterioară a funcției
A. Cerința problemei fitgmdist folosind setul de date Wisconsin Breast Cancer
Dataset. Codul este vizibil in continuare sub denumirea
Se cere sa se testeze algoritmul EM folosind atât funcția ProgramWdbc:
de grupare fitgmdist() din Matlab cât și în varianta proprie de
implementare în Matlab, pentru gruparea datelor din setul B. Rezolvarea în program
Wisconsin Breast Cancer Dataset folosind un model GMM.
Se vor observa și se vor documenta rezultatele.
__________________________________________________________________________________________________

Program WDBC
X=wdbc;
X=X([1:150],[3:4])
x1=min(X(:,1)):0.01:max(X(:,1));
x2=min(X(:,2)):0.01:max(X(:,2));
[xx,yy]=meshgrid(x1,x2);
gridDataSet=[xx(:),yy(:)];
modelGMM=fitgmdist(X,3);
modelGMM.mu
modelGMM.Sigma
figure
idxGridGmm=cluster(modelGMM,gridDataSet);
idxGmmData=cluster(modelGMM,X);
gscatter(gridDataSet(:,1),gridDataSet(:,2),idxGridGmm,[0,0.8,0.8;0.8,0,0.8;0.8,0.8,0,]),
hold on
gscatter(X(:,1),X(:,2),idxGmmData)
hold on
title('Expectation-maximization')
legend('Regiune 1','Regiune 2','Regiune 3', 'Location','SouthEast');
figure,silhouette(X,idxGmmData)
____________________________________________________________________________________________________

Rezultatele programului se pot observa în Figura 4. De


asemenea, coficientul de siluetă aferent este reprezentat în
Figura 5.

Fig. 5 Rezultatele grafice ale programului Fig. 6. Coeficientul de siluetă aferent progamului

Se va încerca o grupare mai eficientă decât cea prezentată


anterior, reducând numărul de grupuri la 2.
Rezultatele grupării sunt prezentate în figurile 7 și
respectiv 8.
Fig. 7 Rezultatul grafic după optimizarea programului Fig. 8. Coeficientul de siluetă aferent programului optimizat

Coeficientul de siluetă în cazul grupării inițiale folosind 3


grupuri a prezentat mai multe porțiuni negative decât în cazul
grupării a 2 grupuri. Din acest fapt rezultă o grupare mai
eficientă în cazul a doilea.

III. CONCLUZII

Având în vedere ipotezele și rezultatele prezentate BIBLIOGRAFIE


anterior, concluzia la care am ajuns este că, în urma reducerii [1] M.B. Radac, Tehnica k-means pentru probleme de grupare, Lucrare de
numărului de grupuri la momentul realizării acestui set de laborator la disciplina Învățare automată, Universitatea Politehnica
date, coeficientul de siluetă aferent programului a prezentat Timișoara, 2020.
mai puține valori negative, ceea ce înseamnă o grupare mai [2] G. Eason, B. Noble, and I. N. Sneddon, “On certain integrals of
Lipschitz-Hankel type involving products of Bessel functions,” Phil.
eficientă și satisfăcătoare față de prima variantă. Trans. Roy. Soc. London, vol. A247, pp. 529–551, April 1955.
(references)

S-ar putea să vă placă și