gmdistribution

Создайте Гауссову модель смеси

Описание

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

Создание

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

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

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

Синтаксис

gm = gmdistribution(mu,sigma)
gm = gmdistribution(mu,sigma,p)

Описание

пример

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 является отрицательным loglikelihood (свойство NegativeLogLikelihood) и p, является количеством предполагаемых параметров.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Отрицательный loglikelihood подходящей Гауссовой модели смеси, учитывая входные данные 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.

fsurf(@(x,y)reshape(pdf(gm,[x(:) y(:)]),size(x)),[-10 10])

Сгенерируйте случайные варьируемые величины, которые следуют за смесью двух двумерных Распределений Гаусса при помощи функции 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, которое представляет отрицательный loglikelihood данных 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)reshape(pdf(gm,[x(:) y(:)]),size(x));
fcontour(gmPDF,[-8 6])

Ссылки

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

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