Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Cluster utilizando modelos de mezcla gaussiana

¿Cómo modelos de mezcla gaussiana datos Cluster

Los modelos de mezcla gaussiana (GMM) se utilizan a menudo para la agrupación de datos. Por lo general, el clúster GMMs ajustado asignando puntos de datos de consulta a los componentes normales multivariados que maximizan la probabilidad posterior del componente dados los datos. Es decir, dado un GMM ajustado, asigna datos de consulta al componente produciendo la mayor probabilidad posterior.cluster Este método de asignar un punto de datos a exactamente un clúster se denomina clustering.hard Para ver un ejemplo que muestra cómo ajustar un GMM a los datos, agruparse con el modelo ajustado y estimar las probabilidades posteriores del componente, consulte.Datos de mezcla de clúster gaussiano mediante clustering duro

Sin embargo, la agrupación en clústeres de GMM es más flexible porque se puede ver como un método o.fuzzysoft clustering Los métodos de agrupación en clústeres blandos asignan una puntuación a un punto de datos para cada clúster. El valor de la puntuación indica la fuerza de asociación del punto de datos al clúster. A diferencia de los métodos de agrupación en clústeres duros, los métodos de agrupación en clústeres blandos son flexibles porque pueden asignar un punto de datos a más de un clúster. Cuando se agrupa con GMMs, la puntuación es la probabilidad posterior. Para obtener un ejemplo de agrupación en clústeres flexible con GMM, consulte.Datos de mezcla gaussiana de clúster mediante agrupación en clústeres Soft

Además, la agrupación en clústeres de GMM puede acomodar clústeres que tienen diferentes tamaños y estructuras de correlación dentro de ellos. Debido a esto, la agrupación en clústeres de GMM puede ser más apropiada de usar que, por ejemplo, la agrupación en clústeres.k

Al igual que la mayoría de los métodos de agrupación en clústeres, debe especificar el número de clústeres deseados antes de ajustar el modelo. El número de clústeres especifica el número de componentes en el GMM. Para los GMMs, es la mejor práctica considerar también:

  • Estructura de covarianza de componentes. Puede especificar matrices de covarianza en diagonal o completas, o si todos los componentes tienen la misma matriz de covarianza.

  • Condiciones iniciales. El algoritmo de maximización de expectativas (EM) se ajusta al GMM. Al igual que el algoritmo de clustering-Means, EM es sensible a las condiciones iniciales y puede converger a un óptimo local.k Puede especificar sus propios valores iniciales para los parámetros, especificar las asignaciones iniciales del clúster para los puntos de datos o dejar que se seleccionen aleatoriamente, o especificar el uso del algoritmo-Means + +.k

  • Parámetro de regularización. Si, por ejemplo, tiene más predictores que puntos de datos, puede regularizarse para la estabilidad de la estimación.

Opciones de estructura de covarianza

Cargue el conjunto de datos de iris de Fisher. Considere agrupar las mediciones sepales.

load fisheriris; X = meas(:,1:2); [n,p] = size(X); rng(3); % For reproducibility  figure; plot(X(:,1),X(:,2),'.','MarkerSize',15); title('Fisher''s Iris Data Set'); xlabel('Sepal length (cm)'); ylabel('Sepal width (cm)'); 

El número de componentes, en un GMM determina el número de subpoblaciones o clústeres.k En esta figura, es difícil determinar si dos, tres o quizás más componentes son apropiados. Un GMM aumenta en complejidad como aumentos.k

Cada componente tiene una matriz de covarianza. Geométricamente, la estructura de covarianza determina la forma de un elipsoide de confianza dibujado sobre una subpoblación o un clúster. Puede especificar si las matrices de covarianza para todos los componentes son diagonales o completas, o si todos los componentes tienen la misma matriz de covarianza. Cada combinación de especificaciones determina la forma y la orientación de los elipsoides.

Ajuste los GMMs a los datos y examine los efectos de especificar todas las combinaciones de opciones de estructura de covarianza en la forma de los elipsoides. Es decir, especifique todas las combinaciones de los argumentos de par nombre-valor y.'CovarianceType''SharedCovariance' Las especificaciones de la estructura de covarianza se aplican a todos los componentes. Para ilustrar, especifique que hay tres componentes. Para dibujar los elipsoides:

  1. Utilice el GMM ajustado para agrupar una rejilla que cubra el plano compuesto por los extremos de las mediciones.

  2. Obtenga la puntuación que especifica un umbral de probabilidad del 99% para cada región de confianza. Esta especificación determina la longitud de los ejes principales y menores de los elipsoides.

  3. Colorea la elipse usando un color similar a su cluster.

k = 3; Sigma = {'diagonal','full'}; nSigma = numel(Sigma); SharedCovariance = {true,false}; SCtext = {'true','false'}; nSC = numel(SharedCovariance); d = 500; x1 = linspace(min(X(:,1)) - 2,max(X(:,1)) + 2,d); x2 = linspace(min(X(:,2)) - 2,max(X(:,2)) + 2,d); [x1grid,x2grid] = meshgrid(x1,x2); X0 = [x1grid(:) x2grid(:)]; threshold = sqrt(chi2inv(0.99,2)); options = statset('MaxIter',1000); % Increase number of EM iterations  figure; c = 1; for i = 1:nSigma;     for j = 1:nSC;         gmfit = fitgmdist(X,k,'CovarianceType',Sigma{i},...             'SharedCovariance',SharedCovariance{j},'Options',options);         clusterX = cluster(gmfit,X);         mahalDist = mahal(gmfit,X0);         subplot(2,2,c);         h1 = gscatter(X(:,1),X(:,2),clusterX);         hold on;             for m = 1:k;                 idx = mahalDist(:,m)<=threshold;                 Color = h1(m).Color*0.75 + -0.5*(h1(m).Color - 1);                 h2 = plot(X0(idx,1),X0(idx,2),'.','Color',Color,'MarkerSize',1);                 uistack(h2,'bottom');             end         plot(gmfit.mu(:,1),gmfit.mu(:,2),'kx','LineWidth',2,'MarkerSize',10)         title(sprintf('Sigma is %s, SharedCovariance = %s',...             Sigma{i},SCtext{j}),'FontSize',8)         legend(h1,{'1','2','3'});         hold off         c = c + 1;     end end 

Aunque el umbral de probabilidad de la región de confianza determina la longitud de los ejes principales y menores, el tipo de covarianza determina la orientación de los ejes.

  • Las matrices de covarianza diagonales indican que los predictores no están correlacionados. Los ejes principales y menores de las elipses son paralelos o perpendiculares a los ejes y.xy Esta especificación aumenta el número total de parámetros por, el número de predictores, para cada componente, pero es más parsimonioso que la especificación de covarianza completa.p

  • Las matrices de covarianza completas permiten predictores correlacionados. No hay ninguna restricción a la orientación de las elipses en relación con los ejes y.xy Cada componente incrementa el número total de parámetros por , pero captura la estructura de correlación entre los predictores. Esta especificación puede causar sobreajuste.

  • Las matrices de covarianza compartidas indican que todos los componentes tienen la misma matriz de covarianza. Todas las elipses tienen el mismo tamaño y tienen la misma orientación. Esta especificación es más parsimoniosa que la especificación no compartida porque el número total de parámetros sólo aumenta según el número de parámetros de covarianza para un componente.

  • Las matrices de covarianza no compartidas indican que todos los componentes tienen su propia matriz de covarianza. El tamaño y la orientación de todas las elipses pueden diferir. Esta especificación incrementa el número de parámetros por veces el número de parámetros de covarianza para un componente, pero puede capturar diferencias de covarianza entre componentes.k

La figura también muestra que no siempre conserva el orden del clúster.cluster Es decir, si se agrupara varios modelos ajustados, podría asignar diferentes etiquetas de clúster para componentes similares.gmdistributioncluster

En la mayoría de las aplicaciones, el número de componentes y la estructura de covarianza adecuada,k , son desconocidos. Una forma de ajustar un GMM es comparando los criterios de información. Dos criterios de información popular son el criterio de información de Akaike (AIC) y el criterio de información Bayesiano (BIC). Ambos toman la probabilidad de registro optimizada y negativa, y luego la penalizan con el número de parámetros en el modelo (es decir, la complejidad del modelo). Sin embargo, el BIC penaliza la complejidad más severamente que AIC. Por lo tanto, la AIC tiende a elegir modelos más complejos que podrían sobreajustarse, y BIC tiende a elegir modelos más simples que podrían ser subaptos. Una buena práctica es mirar ambos criterios al decidir sobre un modelo. Los valores más bajos de AIC o BIC indican modelos de mejor ajuste. También debe asegurarse de que sus opciones y la estructura de matriz de covarianza son apropiadas para su aplicación. almacena el AIC y el BIC de los objetos de modelo ajustados en las propiedades y.kfitgmdistgmdistributionAICBIC Puede acceder a ellos utilizando la notación de puntos. Para obtener un ejemplo sobre la elección de los parámetros apropiados, consulte.Ajustar modelos de mezcla gaussiana

Efectos de las condiciones iniciales

El algoritmo que se ajusta a un GMM a los datos puede ser sensible a las condiciones iniciales. Para ilustrar esto, considere la posibilidad de ajustar varios GMMs y especificar diferentes condiciones iniciales. En concreto, especifique que, inicialmente, la mayoría de los puntos de datos pertenecen al primer clúster, dos conjuntos de asignaciones iniciales aleatorias y de uso-medio + + para obtener centros de clúster iniciales.k Para todas las instancias, especifique tres componentes, matrices de covarianza no compartidas y completas, las mismas proporciones de mezcla iniciales y las mismas matrices de covarianza iniciales. Para la estabilidad cuando usted intenta los diversos conjuntos de los valores iniciales, aumente el número de iteraciones del algoritmo EM.

cluster0 = {[ones(n-8,1); [2; 2; 2; 2]; [3; 3; 3; 3]];...             randsample(1:k,n,true); randsample(1:k,n,true); 'plus'}; converged = nan(4,1); figure; for j = 1:4;     gmfit = fitgmdist(X,k,'CovarianceType','full',...         'SharedCovariance',false,'Start',cluster0{j},...         'Options',options);     clusterX = cluster(gmfit,X);     mahalDist = mahal(gmfit,X0);     subplot(2,2,j);     h1 = gscatter(X(:,1),X(:,2),clusterX);     hold on;     nK = numel(unique(clusterX));     for m = 1:nK;         idx = mahalDist(:,m)<=threshold;         Color = h1(m).Color*0.75 + -0.5*(h1(m).Color - 1);         h2 = plot(X0(idx,1),X0(idx,2),'.','Color',Color,'MarkerSize',1);         uistack(h2,'bottom');     end  plot(gmfit.mu(:,1),gmfit.mu(:,2),'kx','LineWidth',2,'MarkerSize',10)     legend(h1,{'1','2','3'});     hold off     converged(j) = gmfit.Converged; end sum(converged) 
 ans =       4  

Todos los algoritmos convergieron. Cada uno de los diferentes conjuntos de asignaciones de clúster iniciales para los puntos de datos conduce a una asignación de clúster diferente y ajustada. Puede especificar un entero positivo para el argumento de par nombre-valor, que ejecuta el algoritmo el número de veces especificado.'Replicates' Posteriormente, elige el ajuste que produce la mayor probabilidad.fitgmdist

Cuándo regularizar

A veces, durante una iteración EM, una matriz de covarianza ajustada puede enfermarse, es decir, la probabilidad es escapar al infinito. Esto puede suceder si:

  • Hay más predictores que puntos de datos.

  • Se especifica para ajustarse a demasiados componentes.

  • Las variables están altamente correlacionadas.

Para solucionar este problema, puede especificar un número pequeño y positivo mediante el argumento de par nombre-valor. añade el número pequeño y positivo especificado a los elementos diagonales de todas las matrices de covarianza, lo que garantiza que todas las matrices sean positivas.'Regularize'fitgmdist Regularizar puede reducir el valor de máxima verosimilitud. Para obtener más información, consulte.fitgmdist

Consulte también

| |

Temas relacionados