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 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 multivariado.gmdistribution Cada componente se define por su media y covarianza, y la mezcla se define por un vector de proporciones de mezcla.

Creación

Puede crear un objeto de modelo de dos maneras.gmdistribution

  • Utilice la función (descrita 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 y las covarianzas especificados con proporciones de mezcla iguales.gmdistributionmusigma

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

Argumentos de entrada

expandir todo

Medios de componentes de distribución gaussiana multivariado, especificados como una matriz numérica, donde es 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 multivariada, especificadas 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
-by--by-arraymmkes la matriz de covarianza del componente.sigma(:,:,i)i
1 por arraymkLas matrices de covarianza son diagonales. contiene los elementos diagonales de la matriz de covarianza del componente.sigma(1,:,i)i
-by-MatrixmmLas 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

La mezcla de las proporciones de los componentes de la mezcla, especificado como un vector numérico de longitud, donde es el número de componentes.kk El valor predeterminado es un vector de fila de (1/) s, que establece proporciones iguales.k Si no se suma a, 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 multivariado, especificados como una matriz numérica, donde es 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 se ajusta un objeto a los datos mediante la función, a continuación, se estima esta propiedad.gmdistributionfitgmdistfitgmdist

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Covarianzas de componentes de distribución gaussiana multivariada, especificadas 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
-by--by-arraymmkes la matriz de covarianza del componente.Sigma(:,:,i)i
1 por arraymkLas matrices de covarianza son diagonales. contiene los elementos diagonales de la matriz de covarianza del componente.Sigma(1,:,i)i
-by-MatrixmmLas 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 se ajusta un objeto a los datos mediante la función, a continuación, se estima esta propiedad.gmdistributionfitgmdistfitgmdist

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Mezclar las proporciones de los componentes de la mezcla, especificado como un vector de 1 por numérico.k

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

  • Si se ajusta un objeto a los datos mediante la función, a continuación, se 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, especificados como un entero positivo.k

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

  • Si se ajusta un objeto a los datos mediante la función, a continuació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 multivariado, especificadas como un entero positivo.m

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

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

Tipos de datos: double

Esta propiedad es de solo lectura.

Indicador que indica si una matriz de covarianza se comparte entre los componentes de mezcla, especificado 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 de objeto ajustado

Las siguientes propiedades solo se aplican a un objeto ajustado que se crea 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 es la logverosimilitud 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 se puede utilizar para comparar varios modelo con los mismos datos. AIC es una medida basada en la probabilidad de ajuste del modelo que incluye una penalización por complejidad, específicamente, el número de parámetros. Cuando se comparan varios modelos, un modelo con un valor menor 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 logverosimilitud 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 modelo que puede utilizar para comparar varios modelos aptos para los mismos datos. BIC es una medida basada en la probabilidad de ajuste del modelo que incluye una penalización por complejidad, específicamente, el número de parámetros. Cuando se comparan varios modelos, un modelo con el valor BIC más bajo es el mejor modelo de 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.

Indicador que indica si el algoritmo de maximización de expectativa (EM) es convergido 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.

Logverosimilitud negativa del modelo de mezcla gaussiana ajustado dados los datos de entrada de, especificado como un escalar.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 de maximización de expectativas (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 las probabilidades posteriores, especificada como un valor escalar no negativo en el rango.[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 un 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

cdfFunción de distribución acumulativa para la distribución de mezclas gaussiana
clusterConstruya clústeres a partir de la distribución de mezcla gaussiana
mahalMahalanobis distancia al componente de mezcla gaussiana
pdfFunción de densidad de probabilidad para la distribución de mezcla gaussiana
posteriorProbabilidad posterior de componente de mezcla gaussiana
AleatorioVariar aleatorio de la distribución de la mezcla gaussiana

Ejemplos

contraer todo

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

Defina los parámetros de distribución (medias 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 conmemora las covarianzas a lo largo de la tercera cota 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 

Enumere 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 acceder 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 la 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 del objeto ajustado son,,,,, y.AICBICConvergedNegativeLogLikelihoodNumIterationsProbabilityToleranceRegularizationValue Los valores de las propiedades del objeto ajustado están vacíos si se 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 del 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 usa para generar vectores aleatorios.random Uso, 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 aleatorias aleatorios que sigan una mezcla de dos distribuciones Gaussianas bivariadas utilizando la función.mvnrnd Ajuste un modelo de mezcla gaussiana (GMM) a los datos generados mediante la función.fitgmdist

Defina los parámetros de distribución (medias 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 variados aleatorios de cada componente y combine los dos conjuntos de variables aleatorias.

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

El conjunto de datos combinado contiene variados aleatorios 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 

Enumere 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 acceder a estas propiedades mediante la notación de puntos. Por ejemplo, acceda a la propiedad, que representa la logprobabilidad 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 del 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 variates aleatorios.random Uso, y para el análisis de clústeres.clustermahalposterior

Trazar utilizando.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