Crear un modelo de mixtura gaussiano
En este ejemplo se muestra cómo crear un objeto de modelo de mixtura gaussiano (GMM) conocido, o completamente especificado, utilizando gmdistribution y especificando las medias de los componentes, las covarianzas y las proporciones de la mixtura. Para crear un objeto GMM ajustando los datos a un GMM, consulte Fit Gaussian Mixture Model to Data.
Especifique las medias de los componentes, las covarianzas y las proporciones de mixtura para obtener una mixtura de distribuciones gaussianas bivariantes con dos componentes.
mu = [1 2;-3 -5]; % Means sigma = cat(3,[2 0;0 .5],[1 0;0 1]); % Covariances p = ones(1,2)/2; % Mixing proportions
Las filas de mu corresponden a los vectores de media de los componentes y las páginas de sigma, sigma(:,;,J), corresponden a las matrices de covarianza de los componentes.
Cree un objeto GMM con gmdistribution.
gm = gmdistribution(mu,sigma,p);
Muestre las propiedades del GMM.
properties(gm)
Properties for class gmdistribution:
NumVariables
DistributionName
NumComponents
ComponentProportion
SharedCovariance
NumIterations
RegularizationValue
NegativeLogLikelihood
CovarianceType
mu
Sigma
AIC
BIC
Converged
ProbabilityTolerance
Para obtener una descripción de las propiedades, consulte gmdistribution. Para acceder al valor de una propiedad, utilice la notación de puntos. Por ejemplo, acceda al número de variables de cada componente del GMM.
dimension = gm.NumVariables
dimension = 2
Visualice la función de densidad de probabilidad (pdf) del GMM utilizando pdf y la función fsurf de MATLAB®.
gmPDF = @(x,y) arrayfun(@(x0,y0) pdf(gm,[x0 y0]),x,y);
fsurf(gmPDF,[-10 10])
title('Probability Density Function of GMM');
Visualice la función de distribución acumulativa (cdf) del GMM utilizando cdf y fsurf.
gmCDF = @(x,y) arrayfun(@(x0,y0) cdf(gm,[x0 y0]),x,y);
fsurf(gmCDF,[-10 10])
title('Cumulative Distribution Function of GMM');