exponenta event banner

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-ksigma(:,:,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-kSigma(:,:,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 задает это свойство.

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

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

Следующие свойства применяются только к подогнанному объекту, созданному с помощью 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 (Expectation-Maximization, EM) при подгонке модели смеси Гаусса, указанный как true или false.

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

Это свойство пусто при создании gmdistribution с помощью gmdistribution функция.

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

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

Отрицательный логарифм модели подогнанной гауссовой смеси с учетом входных данных 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Расстояние Махаланобиса до гауссова компонента смеси
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

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] Маклахлан, G. и D. Кожица. Модели конечных смесей. Хобокен, Нью-Джерси: John Wiley & Sons, Inc., 2000.

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