В этом примере показано, как создать известный, или полностью заданный, объект смешанной гауссовской модели (GMM) с помощью gmdistribution
и путем определения компонентов, ковариаций и смешанных пропорций. Чтобы создать объект GMM путем подгонки данных к GMM, см. «Подгонка Гауссовой смешанной модели к данным».
Задайте среднее значение компонента, ковариации и пропорции смешения для двухкомпонентной смеси двухмерных гауссовских распределений.
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
Строки mu
соответствуют векторам средних значений компонента и страницам sigma
, sigma(:,;,J)
, соответствуют компонентным ковариационным матрицам.
Создайте объект GMM с помощью gmdistribution
.
gm = gmdistribution(mu,sigma,p);
Отображение свойств GMM.
properties(gm)
Properties for class gmdistribution: NumVariables DistributionName NumComponents ComponentProportion SharedCovariance NumIterations RegularizationValue NegativeLogLikelihood CovarianceType mu Sigma AIC BIC Converged ProbabilityTolerance
Описание свойств см. в разделе gmdistribution
. Для доступа к значению свойства используйте запись через точку. Для примера получите доступ к количеству переменных каждого компонента GMM.
dimension = gm.NumVariables
dimension = 2
Визуализируйте функцию плотности вероятностей (pdf) GMM с помощью pdf
и функцию MATLAB ® fsurf
.
gmPDF = @(x,y) arrayfun(@(x0,y0) pdf(gm,[x0 y0]),x,y);
fsurf(gmPDF,[-10 10])
title('Probability Density Function of GMM');
Визуализируйте совокупную функцию распределения (cdf) GMM с помощью cdf
и f surf
.
gmCDF = @(x,y) arrayfun(@(x0,y0) cdf(gm,[x0 y0]),x,y);
fsurf(gmCDF,[-10 10])
title('Cumulative Distribution Function of GMM');