gmdistribution

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

Описание

A 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-by- m -by- k массивКовариационные матрицы диагональны. sigma(1,:,i) содержит диагональные элементы ковариационной матрицы компонента i.
m -by - m матрицаКовариационные матрицы одинаковы между компонентами.
1-by- m векторКовариационные матрицы диагональны и одинаковы между компонентами.

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

Смешивание пропорций компонентов смеси, заданное как числовой вектор длины k, где k количество компонентов. По умолчанию это вектор-строка (1/ k) с, которая устанавливает равные пропорции. Если 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-by- m -by- k массивКовариационные матрицы диагональны. Sigma(1,:,i) содержит диагональные элементы ковариационной матрицы компонента i.
m -by - m матрицаКовариационные матрицы одинаковы между компонентами.
1-by- 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 function, затем тип ковариационных матриц в sigma входной параметр gmdistribution устанавливает это свойство.

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

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

Имя распределения, заданное как 'gaussian mixture distribution'.

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

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

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

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

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

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

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

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

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

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

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

Флаг, указывающий, является ли ковариационная матрица общей для компонентов смеси, задается как true или false.

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

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

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

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

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

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

Информационный критерий Акайке (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 функция.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

cdfКумулятивная функция распределения для Гауссова распределения смеси
clusterСоздайте кластеры из Гауссова распределения смеси
mahalРасстояние Махаланобиса до Гауссова компонента смеси
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

The 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

A 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. The axes 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. The axes contains 2 objects of type scatter, functioncontour.

Ссылки

[1] McLachlan, G. и D. Peel. Модели конечной смеси. Hoboken, NJ: John Wiley & Sons, Inc., 2000.

Введенный в R2007b