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');