MIXTURES GAUSSIANES I ALGORISME EM

Andrea Baena Espejo, 2022-01-24

1. Implementació de l'algorisme K-mitjanes

Dins de la llibreria "cluster.datasets" de R, podem trobar diverses bases de dades que es poden emprar per fer anàlisi de clústers. En el nostre cas, hem triat les dades "all.mammals.milk.1956". Aquesta base de dades conté 25 observacions sobre les 6 variables següents:

Ara que hem vist com són les nostres dades, volem classificar aquestes espècies en grups, segons com és de semblant la composició de la seva llet respecte a les variables observades.

Cada variable té un comportament diferent i podríem identificar grups de mamífers en cadascuna individualment, però el propòsit és fer una agrupació que tingui en compte totes les variables alhora. El primer que ens plantegem és: "quin és el valor K de clústers hem d'usar per aplicar l'algorisme K-mitjanes?"

Per estimar quin és el millor nombre de grups, apliquem l'algorisme per a K=$\left\lbrace{1,\ldots, 20}\right\rbrace$ i comparem el valor de la suma wss (within sum of squares (wss)) en cada cas. Aquest valor dona una mesura de l'error comès en l'agrupació. Per aplicar l'algorisme en aquest rang de K, usem la funció kmeans implementada en el paquet 'stats' de R.

Si analitzem la gràfica, veiem un punt d'inflexió (colze) en K = 4. Per tant, agrupem les nostres dades en 4 grups, aplicant kmeans

Veiem les mitjanes dels clústers, és a dir, els prototips (cluster means) i el vector d'assignacions (clustering vector).

Per últim, validem com ha estat de bona l'agrupació. Per fer-ho, usem el mètode de la silueta, a través de la funció silhouette del paquet 'cluster' de R.

El gràfic de la silueta anterior ens mostra que la nostra agrupació amb 4 grups és bona perquè no hi ha una amplada negativa de la silueta i la majoria dels valors són més grans que 0,5. La mitjana val 0,6.

A continuació, implementem l'algorisme K-mitjanes usant una funció pròpia

Emprem la funció que acabem d'implementar per agrupar les dades anteriors (all.mammals.milk.1956).

Per últim, validem els resultats amb el mètode de la silueta.

Observem que amb les dues funcions, les dades s'han agrupat en els mateixos grups

Clustering vector (kmeans) --> 3 3 3 3 3 3 3 1 1 1 1 3 3 1 3 1 1 2 2 2 2 2 2 4 4

Cluster (funció propia) --> 4 4 4 4 4 4 4 1 1 1 1 4 4 1 4 1 1 3 3 3 3 3 3 2 2

Aplicació de l'algorisme K-mitjanes en compressió d'imatges

Vegem com podem usar l'algorisme d'agrupació K-mitjanes per comprimir imatges.

Apliquem l'algorisme k-mitjanes amb K = 10 clústers sobre aquesta imatge. D'aquesta manera, agrupem tots els colors existents a la imatge en tan sols 10 colors, i visualitzem el resultat obtingut.

2. Algorisme EM

Paquet REBMIX

El paquet rebmix proporciona funcions R per a generar i estimar models de mixtures aleatòries univariants i multivariants finites. Les variables poden ser contínues, discretes, independents o dependents i poden seguir una distribució normal, lognormal, Weibull, gamma, binomial, Poisson o von Mises. La versió 2.11.0 introdueix l'algorisme EM per a l'estimació millorada dels paràmetres del model de mixtures gaussianes

Generació d'un model de mixtura de gaussianes

Estimació usant l'algorisme REBMIX

Usem la funció REMBIX del paquet 'rebmix' per donar una primera estimació màxim versemblant del model. La funció REMBIX es basa en el processament d'histogrames per determinar la funció de densitat.

Observem que en aquesta primera estimació, l'algorisme REBMIX ha donat com a resultat una mixtura de 6 components (quan, la mostra està extreta d'una mixtura de 5 components). En aquest sentit, ja podem intuir que aquest mètode té algunes carències. A continuació veurem com millorar aquesta estimació, usant conjuntament l'algorisme REBMIX seguit de l'algorisme EM.

Estratègies d'estimació REBMIX&EM

S'utilitza l'algorisme REBMIX per avaluar els paràmetres inicials de l'algorisme EM. Com l'algorisme REBMIX estima una àmplia gamma de paràmetres pel model de mixtura gaussiana per a diferents nombres de components, s'implementen tres estratègies diferents per aplicar REBMIX&EM:

SINGLE

Usem primer l'estratègia 'single' de REBMIX&EM. Amb la funció optbins estimem el valor òptim de bins (barres) per a usar en la funció REBMIX.

En aquesta estimació sí tenim un model de mixtura de gaussianes amb 5 components. Mostrem una representació gràfica del model i en donem les estimacions dels coeficients de la mixtura (w) i de les mitjanes i les covariàncies (theta). Amb aquesta estimació, la versemblaça val aproximadament -2003.6 Les iteracions necessàries han estat 207.

EXHAUSTIVE

Vegem ara la diferència en els resultats si apliquem l'estratègia exhaustiva.

En aquesta estimació hem obtingut pràcticament el mateix valor de versemblança que en el cas de l'estratègia 'single', però l'algorisme ha necessitat 775 iteracions per convergir.

Acceleració de EM

Per abordar la lenta convergència lineal de l'algorisme EM, s'implementen mètodes d'acceleració senzills. Es pot escriure l'increment de l'algorisme EM en cada iteració com $$ \Delta\Theta=\Theta^{i+1}-\Theta^{i} $$

Per reduir el nombre d'iteracions necessàries per a la convergència de l'algorisme EM, aquest increment es pot multiplicar amb algun accelerador. Per tant, l'actualització de cada iteració de EM es converteix en

$$ \Theta^{i+1}=\Theta^{i}+a_{EM}\Delta\Theta $$

El rang desitjable per al multiplicador $a_{EM}$ es troba entre 1.0 i 2.0, on 1.0 dona un increment EM estàndard i 2,0 duplica l'increment EM. Tanmateix, això no vol dir necessàriament que aquesta multiplicació amb un valor de 2,0 duplicarà la velocitat de l'algorisme EM, reduint el nombre necessari d'iteracions per 2. Aquí, 1.5 és un valor segur que accelera majoritàriament l'algorisme, tot conservant bons resultats pels paràmetres estimats. S'implementen els següents mètodes per definir el paràmetre d'acceleració:

Veiem com usant el paràmetre fix d'acceleració de 1.5, el nombre d'iteracions s'ha reduït a 560 (quan, amb l'increment estàndard, eren necessàries 775 iteracions). A més, hem obtingut un valor lleugerament més gran de la versemblança: -2003.52