Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

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

Consulte también

|

Temas relacionados