gmdistribution

Создайте смешанную гауссовскую модель

Описание

gmdistribution объектно-ориентированная память Гауссово распределение смеси, также названное смешанной гауссовской моделью (GMM), которая является многомерным распределением, которое состоит из многомерных компонентов Распределения Гаусса. Каждый компонент задан его средним значением и ковариацией. Смесь задана вектором из смешивания пропорций, где каждая пропорция смешивания представляет часть населения, описанного соответствующим компонентом.

Создание

Можно создать gmdistribution объект модели двумя способами.

  • Используйте gmdistribution функция (описанный здесь), чтобы создать gmdistribution объект модели путем определения параметров распределения.

  • Используйте fitgmdist функционируйте, чтобы соответствовать gmdistribution объект модели к данным, учитывая постоянное число компонентов.

Описание

пример

gm = gmdistribution(mu,sigma) создает gmdistribution объект модели с помощью заданных средних значений mu и ковариации sigma с равными пропорциями смешивания.

gm = gmdistribution(mu,sigma,p) задает смесительные пропорции многомерных компонентов Распределения Гаусса.

Входные параметры

развернуть все

Средние значения многомерных компонентов Распределения Гаусса в виде k-by-m числовая матрица, где k является количеством компонентов и m, являются количеством переменных в каждом компоненте. mu(i,:) среднее значение i компонента.

Типы данных: single | double

Ковариации многомерных компонентов Распределения Гаусса в виде числового вектора, матрицы или массива.

Учитывая, что k является количеством компонентов, и m является количеством переменных в каждом компоненте, sigma одно из значений в этой таблице.

ЗначениеОписание
m-by-m-by-k массивsigma(:,:,i) ковариационная матрица i компонента.
1 m k массивомКовариационные матрицы являются диагональными. sigma(1,:,i) содержит диагональные элементы ковариационной матрицы i компонента.
m-by-m матрицаКовариационные матрицы являются тем же самым через компоненты.
1 m векторомКовариационные матрицы являются диагональными и то же самое через компоненты.

Типы данных: single | double

Смешивание пропорций компонентов смеси в виде числового вектора из длины k, где k является количеством компонентов. Значением по умолчанию является вектор-строка из (1/k) s, который устанавливает равные пропорции. Если p не суммирует к 1, gmdistribution нормирует его.

Типы данных: single | double

Свойства

развернуть все

Параметры распределения

Это свойство доступно только для чтения.

Средние значения многомерных компонентов Распределения Гаусса в виде k-by-m числовая матрица, где k является количеством компонентов и m, являются количеством переменных в каждом компоненте. mu(i,:) среднее значение i компонента.

  • Если вы создаете gmdistribution объект при помощи gmdistribution функция, затем mu входной параметр gmdistribution наборы это свойство.

  • Если вы соответствуете gmdistribution возразите против данных при помощи fitgmdist функция, затем fitgmdist оценки это свойство.

Типы данных: single | double

Это свойство доступно только для чтения.

Ковариации многомерных компонентов Распределения Гаусса в виде числового вектора, матрицы или массива.

Учитывая, что k является количеством компонентов, и m является количеством переменных в каждом компоненте, Sigma одно из значений в этой таблице.

ЗначениеОписание
m-by-m-by-k массивSigma(:,:,i) ковариационная матрица i компонента.
1 m k массивомКовариационные матрицы являются диагональными. Sigma(1,:,i) содержит диагональные элементы ковариационной матрицы i компонента.
m-by-m матрицаКовариационные матрицы являются тем же самым через компоненты.
1 m векторомКовариационные матрицы являются диагональными и то же самое через компоненты.

  • Если вы создаете gmdistribution объект при помощи gmdistribution функция, затем sigma входной параметр gmdistribution наборы это свойство.

  • Если вы соответствуете gmdistribution возразите против данных при помощи fitgmdist функция, затем fitgmdist оценки это свойство.

Типы данных: single | double

Это свойство доступно только для чтения.

Смешивание пропорций компонентов смеси в виде 1 k числовым вектором.

  • Если вы создаете gmdistribution объект при помощи gmdistribution функция, затем p входной параметр gmdistribution наборы это свойство.

  • Если вы соответствуете gmdistribution возразите против данных при помощи fitgmdist функция, затем fitgmdist оценки это свойство.

Типы данных: single | double

Характеристики распределения

Это свойство доступно только для чтения.

Тип ковариационных матриц в виде любого 'diagonal' или 'full'.

  • Если вы создаете gmdistribution объект при помощи gmdistribution функция, затем тип ковариационных матриц в sigma входной параметр gmdistribution наборы это свойство.

  • Если вы соответствуете gmdistribution возразите против данных при помощи fitgmdist функция, затем 'CovarianceType' аргумент пары "имя-значение" fitgmdist наборы это свойство.

Это свойство доступно только для чтения.

Имя распределения в виде 'gaussian mixture distribution'.

Это свойство доступно только для чтения.

Количество компонентов смеси, k в виде положительного целого числа.

  • Если вы создаете gmdistribution объект при помощи gmdistribution функция, затем входные параметры mu\sigma, и p из gmdistribution установите это свойство.

  • Если вы соответствуете gmdistribution возразите против данных при помощи fitgmdist функция, затем k входной параметр fitgmdist наборы это свойство.

Типы данных: single | double

Это свойство доступно только для чтения.

Количество переменных в многомерных компонентах Распределения Гаусса, m в виде положительного целого числа.

  • Если вы создаете gmdistribution объект при помощи gmdistribution функция, затем входные параметры mu\sigma, и p из gmdistribution установите это свойство.

  • Если вы соответствуете gmdistribution возразите против данных при помощи fitgmdist функция, затем входные данные X из fitgmdist наборы это свойство.

Типы данных: double

Это свойство доступно только для чтения.

Отметьте указание, совместно используется ли ковариационная матрица через компоненты смеси в виде true или false.

  • Если вы создаете gmdistribution объект при помощи gmdistribution функция, затем тип ковариационных матриц в sigma входной параметр gmdistribution наборы это свойство.

  • Если вы соответствуете gmdistribution возразите против данных при помощи fitgmdist функция, затем 'SharedCovariance' аргумент пары "имя-значение" fitgmdist наборы это свойство.

Типы данных: логический

Свойства для подходящего объекта

Следующие свойства применяются только к подходящему объекту, при помощи которого вы создаете fitgmdist. Значения этих свойств пусты, если вы создаете gmdistribution объект при помощи gmdistribution функция.

Это свойство доступно только для чтения.

Критерий информации о Akaike (AIC) в виде скаляра. AIC = 2*NlogL + 2*p, где NlogL отрицательная логарифмическая правдоподобность (NegativeLogLikelihood свойство) и p количество предполагаемых параметров.

AIC является инструментом выбора модели, который можно использовать, чтобы сравнить подгонку многоуровневых моделей к тем же данным. AIC является основанной на вероятности мерой подгонки модели, которая включает штраф за сложность, а именно, количество параметров. Когда вы сравниваете многоуровневые модели, модель с меньшим значением AIC лучше.

Это свойство пусто, если вы создаете gmdistribution объект при помощи gmdistribution функция.

Типы данных: single | double

Это свойство доступно только для чтения.

Байесов информационный критерий (BIC) в виде скаляра. BIC = 2*NlogL + p*log(n), где NlogL отрицательная логарифмическая правдоподобность (NegativeLogLikelihood свойство), n количество наблюдений и p количество предполагаемых параметров.

BIC является инструментом выбора модели, который можно использовать, чтобы сравнить подгонку многоуровневых моделей к тем же данным. BIC является основанной на вероятности мерой подгонки модели, которая включает штраф за сложность, а именно, количество параметров. Когда вы сравниваете многоуровневые модели, модель с самым низким значением BIC является моделью оптимальной подгонки.

Это свойство пусто, если вы создаете gmdistribution объект при помощи gmdistribution функция.

Типы данных: single | double

Это свойство доступно только для чтения.

Отметьте указание, сходится ли алгоритм Максимизации ожидания (EM) при подборе кривой смешанной гауссовской модели в виде true или false.

Можно изменить опции оптимизации при помощи 'Options' аргумент пары "имя-значение" fitgmdist.

Это свойство пусто, если вы создаете gmdistribution объект при помощи gmdistribution функция.

Типы данных: логический

Это свойство доступно только для чтения.

Отрицательная логарифмическая правдоподобность подходящей смешанной гауссовской модели, учитывая входные данные X из fitgmdistВ виде скаляра.

Это свойство пусто, если вы создаете gmdistribution объект при помощи gmdistribution функция.

Типы данных: single | double

Это свойство доступно только для чтения.

Количество итераций в алгоритме Максимизации ожидания (EM) в виде положительного целого числа.

Можно изменить опции оптимизации, включая максимальное количество позволенных итераций, при помощи 'Options' аргумент пары "имя-значение" fitgmdist.

Это свойство пусто, если вы создаете gmdistribution объект при помощи gmdistribution функция.

Типы данных: double

Это свойство доступно только для чтения.

Допуск к апостериорным вероятностям в виде неотрицательного скалярного значения в области значений [0,1e-6].

'ProbabilityTolerance' аргумент пары "имя-значение" fitgmdist наборы это свойство.

Это свойство пусто, если вы создаете gmdistribution объект при помощи gmdistribution функция.

Типы данных: single | double

Это свойство доступно только для чтения.

Значение параметров регуляризации в виде неотрицательного скаляра.

'RegularizationValue' аргумент пары "имя-значение" fitgmdist наборы это свойство.

Это свойство пусто, если вы создаете gmdistribution объект при помощи gmdistribution функция.

Типы данных: single | double

Функции объекта

cdfКумулятивная функция распределения для Гауссова распределения смеси
clusterСоздайте кластеры из Гауссова распределения смеси
mahalРасстояние Mahalanobis до Гауссова компонента смеси
pdfФункция плотности вероятности для Гауссова распределения смеси
posteriorАпостериорная вероятность Гауссова компонента смеси
randomСлучайная варьируемая величина от Гауссова распределения смеси

Примеры

свернуть все

Создайте двухкомпонентное двумерное Гауссово распределение смеси при помощи gmdistribution функция.

Задайте параметры распределения (средние значения и ковариации) двух двумерных Гауссовых компонентов смеси.

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

cat функция конкатенирует ковариации вдоль третьего измерения массива. Заданные ковариационные матрицы являются диагональными матрицами. sigma(1,:,i) содержит диагональные элементы ковариационной матрицы i компонента.

Создайте gmdistribution объект. По умолчанию, 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

Перечислите свойства gm объект.

properties(gm)
Properties for class gmdistribution:

    NumVariables
    DistributionName
    NumComponents
    ComponentProportion
    SharedCovariance
    NumIterations
    RegularizationValue
    NegativeLogLikelihood
    CovarianceType
    mu
    Sigma
    AIC
    BIC
    Converged
    ProbabilityTolerance

Можно получить доступ к этим свойствам при помощи записи через точку. Например, получите доступ к ComponentProportion свойство, которое представляет смесительные пропорции компонентов смеси.

gm.ComponentProportion
ans = 1×2

    0.5000    0.5000

gmdistribution объект имеет свойства, которые применяются только к подходящему объекту. Подходящими свойствами объектов является AIC, BIC, Converged, NegativeLogLikelihood'NumIterations' , ProbabilityTolerance, и RegularizationValue. Значения подходящих свойств объектов пусты, если вы создаете объект при помощи gmdistribution функционируйте и задающий параметры распределения. Например, получите доступ к NegativeLogLikelihood свойство при помощи записи через точку.

gm.NegativeLogLikelihood
ans =

     []

После того, как вы создаете gmdistribution объект, можно использовать объектные функции. Используйте cdf и pdf вычислить значения кумулятивной функции распределения (cdf) и функции плотности вероятности (PDF). Используйте random сгенерировать случайные векторы. Используйте cluster, mahal, и posterior для кластерного анализа.

Визуализируйте объект при помощи pdf и fsurf.

gmPDF = @(x,y) arrayfun(@(x0,y0) pdf(gm,[x0 y0]),x,y);
fsurf(gmPDF,[-10 10])

Figure contains an axes object. The axes object contains an object of type functionsurface.

Сгенерируйте случайные варьируемые величины, которые следуют за смесью двух двумерных Распределений Гаусса при помощи mvnrnd функция. Соответствуйте смешанной гауссовской модели (GMM) к сгенерированным данным при помощи fitgmdist функция.

Задайте параметры распределения (средние значения и ковариации) двух двумерных Гауссовых компонентов смеси.

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

Сгенерируйте равное количество случайных варьируемых величин от каждого компонента и объедините два набора случайных варьируемых величин.

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

Объединенный набор данных X содержит случайные варьируемые величины после смеси двух двумерных Распределений Гаусса.

Соответствуйте двухкомпонентному GMM к 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

Перечислите свойства gm объект.

properties(gm)
Properties for class gmdistribution:

    NumVariables
    DistributionName
    NumComponents
    ComponentProportion
    SharedCovariance
    NumIterations
    RegularizationValue
    NegativeLogLikelihood
    CovarianceType
    mu
    Sigma
    AIC
    BIC
    Converged
    ProbabilityTolerance

Можно получить доступ к этим свойствам при помощи записи через точку. Например, получите доступ к NegativeLogLikelihood свойство, которое представляет отрицательную логарифмическую правдоподобность данных X учитывая подобранную модель.

gm.NegativeLogLikelihood
ans = 7.0584e+03

После того, как вы создаете gmdistribution объект, можно использовать объектные функции. Используйте cdf и pdf вычислить значения кумулятивной функции распределения (cdf) и функции плотности вероятности (PDF). Используйте random сгенерировать случайные варьируемые величины. Используйте cluster, mahal, и posterior для кластерного анализа.

Постройте X при помощи scatter. Визуализируйте подобранную модель gm при помощи pdf и fcontour.

scatter(X(:,1),X(:,2),10,'.') % Scatter plot with points of size 10
hold on
gmPDF = @(x,y) arrayfun(@(x0,y0) pdf(gm,[x0 y0]),x,y);
fcontour(gmPDF,[-8 6])

Figure contains an axes object. The axes object contains 2 objects of type scatter, functioncontour.

Ссылки

[1] Маклахлан, G. и D. Кожица. Конечные модели смеси. Хобокен, NJ: John Wiley & Sons, Inc., 2000.

Представленный в R2007b