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.

gmdistribution

Crear un modelo de mezcla gaussiana

Descripción

Un objeto almacena una distribución de mezcla gaussiana, también denominada modelo de mezcla gaussiana (GMM), que es una distribución multivariada que consta de componentes de distribución gaussiana multivariante.gmdistribution Cada componente se define por su media y covarianza. La mezcla se define por un vector de proporciones de mezcla, donde cada proporción de mezcla representa la fracción de la población descrita por un componente correspondiente.

Creación

Puede crear un objeto de modelo de dos maneras.gmdistribution

  • Utilice la función (que se describe aquí) para crear un objeto de modelo especificando los parámetros de distribución.gmdistributiongmdistribution

  • Utilice la función para ajustar un objeto de modelo a los datos dados un número fijo de componentes.fitgmdistgmdistribution

Descripción

ejemplo

gm = gmdistribution(mu,sigma) crea un objeto de modelo utilizando los medios especificados y las covarianzas con proporciones de mezcla iguales.gmdistributionmusigma

gm = gmdistribution(mu,sigma,p) especifica las proporciones de mezcla de los componentes de distribución gaussiana multivariante.

Argumentos de entrada

expandir todo

Medios de componentes de distribución gaussiana multivariante, especificados como una matriz numérica -por-, donde está el número de componentes y es el número de variables en cada componente. es la media del componente .kmkmmu(i,:)i

Tipos de datos: single | double

Covarianzas de componentes de distribución gaussiana multivariante, especificados como vector numérico, matriz o matriz.

Dado que es el número de componentes y es el número de variables en cada componente, es uno de los valores de esta tabla.kmsigma

ValorDescripción
-por- -por- matrizmmkes la matriz de covarianza del componente .sigma(:,:,i)i
Matriz de 1 por -por-mkLas matrices de covarianza son diagonales. contiene los elementos diagonales de la matriz de covarianza del componente .sigma(1,:,i)i
-por matrizmmLas matrices de covarianza son las mismas entre los componentes.
1 por vectormLas matrices de covarianza son diagonales y las mismas entre los componentes.

Tipos de datos: single | double

Mezclar las proporciones de los componentes de la mezcla, especificadas como un vector numérico de longitud, donde está el número de componentes.kk El valor predeterminado es un vector de fila de (1/ )s, que establece proporciones iguales.k Si no suma a , lo normaliza.p1gmdistribution

Tipos de datos: single | double

Propiedades

expandir todo

Parámetros de distribución

Esta propiedad es de solo lectura.

Medios de componentes de distribución gaussiana multivariante, especificados como una matriz numérica -por-, donde está el número de componentes y es el número de variables en cada componente. es la media del componente .kmkmmu(i,:)i

  • Si crea un objeto mediante la función, el argumento de entrada de establece esta propiedad.gmdistributiongmdistributionmugmdistribution

  • Si ajusta un objeto a los datos mediante la función, estima esta propiedad.gmdistributionfitgmdistfitgmdist

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Covarianzas de componentes de distribución gaussiana multivariante, especificados como vector numérico, matriz o matriz.

Dado que es el número de componentes y es el número de variables en cada componente, es uno de los valores de esta tabla.kmSigma

ValorDescripción
-por- -por- matrizmmkes la matriz de covarianza del componente .Sigma(:,:,i)i
Matriz de 1 por -por-mkLas matrices de covarianza son diagonales. contiene los elementos diagonales de la matriz de covarianza del componente .Sigma(1,:,i)i
-por matrizmmLas matrices de covarianza son las mismas entre los componentes.
1 por vectormLas matrices de covarianza son diagonales y las mismas entre los componentes.

  • Si crea un objeto mediante la función, el argumento de entrada de establece esta propiedad.gmdistributiongmdistributionsigmagmdistribution

  • Si ajusta un objeto a los datos mediante la función, estima esta propiedad.gmdistributionfitgmdistfitgmdist

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Proporciónes de mezcla de componentes de mezcla, especificadas como un vector numérico de 1 por.k

  • Si crea un objeto mediante la función, el argumento de entrada de establece esta propiedad.gmdistributiongmdistributionpgmdistribution

  • Si ajusta un objeto a los datos mediante la función, estima esta propiedad.gmdistributionfitgmdistfitgmdist

Tipos de datos: single | double

Características de distribución

Esta propiedad es de solo lectura.

Tipo de matrices de covarianza, especificadas como cualquiera o .'diagonal''full'

  • Si crea un objeto mediante la función, el tipo de matrices de covarianza en el argumento de entrada de establece esta propiedad.gmdistributiongmdistributionsigmagmdistribution

  • Si ajusta un objeto a los datos mediante la función, el argumento de par nombre-valor de establece esta propiedad.gmdistributionfitgmdist'CovarianceType'fitgmdist

Esta propiedad es de solo lectura.

Nombre de distribución, especificado como .'gaussian mixture distribution'

Esta propiedad es de solo lectura.

Número de componentes de mezcla, , especificado como un entero positivo.k

  • Si crea un objeto mediante la función, los argumentos de entrada , , y de establecer esta propiedad.gmdistributiongmdistributionmusigmapgmdistribution

  • Si ajusta un objeto a los datos mediante la función, el argumento de entrada de establece esta propiedad.gmdistributionfitgmdistkfitgmdist

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Número de variables en los componentes de distribución gaussiana multivariante, , especificado como un entero positivo.m

  • Si crea un objeto mediante la función, los argumentos de entrada , , y de establecer esta propiedad.gmdistributiongmdistributionmusigmapgmdistribution

  • Si ajusta un objeto a los datos mediante la función, los datos de entrada de establece esta propiedad.gmdistributionfitgmdistXfitgmdist

Tipos de datos: double

Esta propiedad es de solo lectura.

Marcador que indica si una matriz de covarianza se comparte entre los componentes de mezcla, especificados como o .truefalse

  • Si crea un objeto mediante la función, el tipo de matrices de covarianza en el argumento de entrada de establece esta propiedad.gmdistributiongmdistributionsigmagmdistribution

  • Si ajusta un objeto a los datos mediante la función, el argumento de par nombre-valor de establece esta propiedad.gmdistributionfitgmdist'SharedCovariance'fitgmdist

Tipos de datos: logical

Propiedades para el objeto ajustado

Las siguientes propiedades solo se aplican a un objeto ajustado creado mediante .fitgmdist Los valores de estas propiedades están vacíos si crea un objeto mediante la función.gmdistributiongmdistribution

Esta propiedad es de solo lectura.

Criterio de información de Akaike (AIC), especificado como escalar. , donde está la probabilidad de registro negativa (la propiedad) y es el número de parámetros estimados.AIC = 2*NlogL + 2*pNlogLNegativeLogLikelihoodp

AIC es una herramienta de selección de modelos que puede utilizar para comparar varios modelos que se ajustan a los mismos datos. AIC es una medida basada en la probabilidad del ajuste del modelo que incluye una penalización por la complejidad, específicamente, el número de parámetros. Al comparar varios modelos, un modelo con un valor más pequeño de AIC es mejor.

Esta propiedad está vacía si crea un objeto mediante la función.gmdistributiongmdistribution

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Criterio de información de Bayes (BIC), especificado como escalar. , donde está la probabilidad de registro negativa (la propiedad), es el número de observaciones y es el número de parámetros estimados.BIC = 2*NlogL + p*log(n)NlogLNegativeLogLikelihoodnp

BIC es una herramienta de selección de modelos que puede utilizar para comparar varios modelos que se ajustan a los mismos datos. BIC es una medida basada en la probabilidad del ajuste del modelo que incluye una penalización por la complejidad, específicamente, el número de parámetros. Al comparar varios modelos, un modelo con el valor BIC más bajo es el modelo de mejor ajuste.

Esta propiedad está vacía si crea un objeto mediante la función.gmdistributiongmdistribution

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Marcador que indica si el algoritmo de Expectation-Maximization (EM) converge al ajustar un modelo de mezcla gaussiana, especificado como o .truefalse

Puede cambiar las opciones de optimización mediante el argumento de par nombre-valor de .'Options'fitgmdist

Esta propiedad está vacía si crea un objeto mediante la función.gmdistributiongmdistribution

Tipos de datos: logical

Esta propiedad es de solo lectura.

Probabilidad de registro negativa del modelo de mezcla gaussiana ajustado dados los datos de entrada de , especificados como escalares.Xfitgmdist

Esta propiedad está vacía si crea un objeto mediante la función.gmdistributiongmdistribution

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Número de iteraciones en el algoritmo Expectation-Maximization (EM), especificado como un entero positivo.

Puede cambiar las opciones de optimización, incluido el número máximo de iteraciones permitidas, mediante el argumento de par nombre-valor de .'Options'fitgmdist

Esta propiedad está vacía si crea un objeto mediante la función.gmdistributiongmdistribution

Tipos de datos: double

Esta propiedad es de solo lectura.

Tolerancia para probabilidades posteriores, especificada como un valor escalar no negativo en el intervalo .[0,1e-6]

El argumento de par nombre-valor de establece esta propiedad.'ProbabilityTolerance'fitgmdist

Esta propiedad está vacía si crea un objeto mediante la función.gmdistributiongmdistribution

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Valor del parámetro de regularización, especificado como escalar no negativo.

El argumento de par nombre-valor de establece esta propiedad.'RegularizationValue'fitgmdist

Esta propiedad está vacía si crea un objeto mediante la función.gmdistributiongmdistribution

Tipos de datos: single | double

Funciones del objeto

cdfCumulative distribution function for Gaussian mixture distribution
clusterConstruct clusters from Gaussian mixture distribution
mahalMahalanobis distance to Gaussian mixture component
pdfProbability density function for Gaussian mixture distribution
posteriorPosterior probability of Gaussian mixture component
randomRandom variate from Gaussian mixture distribution

Ejemplos

contraer todo

Cree una distribución de mezcla gaussiana bivariada de dos componentes utilizando la función.gmdistribution

Defina los parámetros de distribución (medios y covarianzas) de dos componentes de mezcla gaussiana bivariada.

mu = [1 2;-3 -5]; sigma = cat(3,[2 .5],[1 1]) % 1-by-2-by-2 array
sigma =  sigma(:,:,1) =      2.0000    0.5000   sigma(:,:,2) =       1     1  

La función concatena las covarianzas a lo largo de la tercera dimensión de matriz.cat Las matrices de covarianza definidas son matrices diagonales. contiene los elementos diagonales de la matriz de covarianza del componente .sigma(1,:,i)i

Cree un objeto.gmdistribution De forma predeterminada, la función crea una mezcla de proporción igual.gmdistribution

gm = gmdistribution(mu,sigma)
gm =   Gaussian mixture distribution with 2 components in 2 dimensions Component 1: Mixing proportion: 0.500000 Mean:     1     2  Component 2: Mixing proportion: 0.500000 Mean:    -3    -5 

Enumerar las propiedades del objeto.gm

properties(gm)
Properties for class gmdistribution:      NumVariables     DistributionName     NumComponents     ComponentProportion     SharedCovariance     NumIterations     RegularizationValue     NegativeLogLikelihood     CovarianceType     mu     Sigma     AIC     BIC     Converged     ProbabilityTolerance 

Puede tener acceso a estas propiedades mediante la notación de puntos. Por ejemplo, acceda a la propiedad, que representa las proporciones de mezcla de los componentes de mezcla.ComponentProportion

gm.ComponentProportion
ans = 1×2

    0.5000    0.5000

Un objeto tiene propiedades que solo se aplican a un objeto ajustado.gmdistribution Las propiedades de objeto ajustadas son , , , , , , , y .AICBICConvergedNegativeLogLikelihoodNumIterationsProbabilityToleranceRegularizationValue Los valores de las propiedades del objeto ajustado están vacíos si crea un objeto utilizando la función y especificando parámetros de distribución.gmdistribution Por ejemplo, acceda a la propiedad mediante la notación de puntos.NegativeLogLikelihood

gm.NegativeLogLikelihood
ans =       [] 

Después de crear un objeto, puede utilizar las funciones de objeto.gmdistribution Utilice y calcule los valores de la función de distribución acumulativa (cdf) y la función de densidad de probabilidad (pdf).cdfpdf Se utiliza para generar vectores aleatorios.random Use , , y para el análisis de clústeres.clustermahalposterior

Visualice el objeto mediante y .pdffsurf

fsurf(@(x,y)reshape(pdf(gm,[x(:) y(:)]),size(x)),[-10 10])

Genere variaciones aleatorias que sigan una mezcla de dos distribuciones gaussianas bivariadas mediante la función.mvnrnd Ajuste un modelo de mezcla gaussiana (GMM) a los datos generados utilizando la función.fitgmdist

Defina los parámetros de distribución (medios y covarianzas) de dos componentes de mezcla gaussiana bivariada.

 mu1 = [1 2];          % Mean of the 1st component sigma1 = [2 0; 0 .5]; % Covariance of the 1st component mu2 = [-3 -5];        % Mean of the 2nd component sigma2 = [1 0; 0 1];  % Covariance of the 2nd component

Genere un número igual de variadores aleatorios de cada componente y combine los dos conjuntos de variadores aleatorios.

rng('default') % For reproducibility r1 = mvnrnd(mu1,sigma1,1000); r2 = mvnrnd(mu2,sigma2,1000); X = [r1; r2];

El conjunto de datos combinado contiene variaciones aleatorias después de una mezcla de dos distribuciones gaussianas bivariadas.X

Ajuste un GMM de dos componentes a .X

gm = fitgmdist(X,2)
gm =   Gaussian mixture distribution with 2 components in 2 dimensions Component 1: Mixing proportion: 0.500000 Mean:   -2.9617   -4.9727  Component 2: Mixing proportion: 0.500000 Mean:    0.9539    2.0261 

Enumerar las propiedades del objeto.gm

properties(gm)
Properties for class gmdistribution:      NumVariables     DistributionName     NumComponents     ComponentProportion     SharedCovariance     NumIterations     RegularizationValue     NegativeLogLikelihood     CovarianceType     mu     Sigma     AIC     BIC     Converged     ProbabilityTolerance 

Puede tener acceso a estas propiedades mediante la notación de puntos. Por ejemplo, acceda a la propiedad, que representa la probabilidad de registro negativa de los datos dados el modelo ajustado.NegativeLogLikelihoodX

gm.NegativeLogLikelihood
ans = 7.0584e+03 

Después de crear un objeto, puede utilizar las funciones de objeto.gmdistribution Utilice y calcule los valores de la función de distribución acumulativa (cdf) y la función de densidad de probabilidad (pdf).cdfpdf Se utiliza para generar variaciones aleatorias.random Use , , y para el análisis de clústeres.clustermahalposterior

Trazar mediante el uso de .Xscatter Visualice el modelo ajustado utilizando y .gmpdffcontour

scatter(X(:,1),X(:,2),10,'.') % Scatter plot with points of size 10 hold on gmPDF = @(x,y)reshape(pdf(gm,[x(:) y(:)]),size(x)); fcontour(gmPDF,[-8 6])

Referencias

[1] McLachlan, G., and D. Peel. Finite Mixture Models. Hoboken, NJ: John Wiley & Sons, Inc., 2000.

Introducido en R2007b