Создайте Гауссову модель смеси
Объектно-ориентированная память gmdistribution
Гауссово распределение смеси, также названное Гауссовой моделью смеси (GMM), которая является многомерным распределением, которое состоит из многомерных компонентов Распределения Гаусса. Каждый компонент задан его средним значением и ковариацией, и смесь задана вектором смешивания пропорций.
Можно создать объект модели gmdistribution
двумя способами.
Используйте функцию gmdistribution
(описанный здесь), чтобы создать объект модели gmdistribution
путем определения параметров распределения.
Используйте функцию fitgmdist
, чтобы соответствовать объекту модели gmdistribution
к данным, учитывая постоянное число компонентов.
gm = gmdistribution(mu,sigma)
gm = gmdistribution(mu,sigma,p)
\mu
СредстваСредство многомерных компонентов Распределения Гаусса, заданных как k-by-m числовая матрица, где k является количеством компонентов и m, является количеством переменных в каждом компоненте. mu(i,:)
является средним значением i
компонента.
Типы данных: single | double
\sigma
КовариацииКовариации многомерных компонентов Распределения Гаусса, заданных как числовой вектор, матрица или массив.
Учитывая, что 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
p
Смешивание пропорций компонентов смесиСмешивание пропорций компонентов смеси, заданных как числовой вектор длины k, где k является количеством компонентов. Значением по умолчанию является вектор - строка из (1/k) s, который устанавливает равные пропорции. Если p
не суммирует к 1
, gmdistribution
нормирует его.
Типы данных: single | double
\mu
СредстваЭто свойство доступно только для чтения.
Средство многомерных компонентов Распределения Гаусса, заданных как k-by-m числовая матрица, где k является количеством компонентов и m, является количеством переменных в каждом компоненте. mu(i,:)
является средним значением i
компонента.
Типы данных: single | double
\sigma
КовариацииЭто свойство доступно только для чтения.
Ковариации многомерных компонентов Распределения Гаусса, заданных как числовой вектор, матрица или массив.
Учитывая, что 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
ComponentProportion
— Смешивание пропорций компонентов смесиЭто свойство доступно только для чтения.
Смешивание пропорций компонентов смеси, заданных как 1 k числовым вектором.
Типы данных: single | double
CovarianceType
— Тип ковариационных матриц'diagonal'
| 'full'
Это свойство доступно только для чтения.
Тип ковариационных матриц, заданных или как 'diagonal'
или как 'full'
.
Если вы создаете объект gmdistribution
при помощи функции gmdistribution
, то тип ковариационных матриц во входном параметре sigma
gmdistribution
устанавливает это свойство.
Если вы соответствуете объекту gmdistribution
к данным при помощи функции fitgmdist
, то аргумент пары "имя-значение" 'CovarianceType'
fitgmdist
устанавливает это свойство.
DistributionName
— Имя распределения'gaussian mixture distribution'
(значение по умолчанию)Это свойство доступно только для чтения.
Имя распределения, заданное как 'gaussian mixture distribution'
.
NumComponents
— Количество компонентов смесиЭто свойство доступно только для чтения.
Количество компонентов смеси, k, заданного как положительное целое число.
Типы данных: single | double
'NumVariables'
Количество переменныхЭто свойство доступно только для чтения.
Количество переменных в многомерных компонентах Распределения Гаусса, m, заданном как положительное целое число.
Типы данных: double
SharedCovariance
— Отметьте указание на разделяемую ковариациюtrue
| false
Это свойство доступно только для чтения.
Отметьте указание, совместно используется ли ковариационная матрица через компоненты смеси, заданные как true
или false
.
Если вы создаете объект gmdistribution
при помощи функции gmdistribution
, то тип ковариационных матриц во входном параметре sigma
gmdistribution
устанавливает это свойство.
Если вы соответствуете объекту gmdistribution
к данным при помощи функции fitgmdist
, то аргумент пары "имя-значение" 'SharedCovariance'
fitgmdist
устанавливает это свойство.
Типы данных: логический
Следующие свойства применяются только к подходящему объекту, который вы создаете при помощи fitgmdist
. Значения этих свойств пусты, если вы создаете объект gmdistribution
при помощи функции gmdistribution
.
AIC
— Критерий информации о AkaikeЭто свойство доступно только для чтения.
Критерий информации о Akaike (AIC), заданный как скаляр. AIC = 2*NlogL + 2*p
, где NlogL
является отрицательным loglikelihood (свойство NegativeLogLikelihood
) и p
, является количеством предполагаемых параметров.
AIC является образцовым инструментом выбора, который можно использовать, чтобы сравнить подгонку многоуровневых моделей к тем же данным. AIC является основанной на вероятности мерой образцовой подгонки, которая включает штраф за сложность, а именно, количество параметров. Когда вы сравниваете многоуровневые модели, модель с меньшим значением AIC лучше.
Это свойство пусто, если вы создаете объект gmdistribution
при помощи функции gmdistribution
.
Типы данных: single | double
BIC
— Байесов информационный критерийЭто свойство доступно только для чтения.
Байесов информационный критерий (BIC), заданный как скаляр. BIC = 2*NlogL + p*log(n)
, где NlogL
является отрицательным loglikelihood (свойство NegativeLogLikelihood
), n
, является количеством наблюдений, и p
является количеством предполагаемых параметров.
BIC является образцовым инструментом выбора, который можно использовать, чтобы сравнить подгонку многоуровневых моделей к тем же данным. BIC является основанной на вероятности мерой образцовой подгонки, которая включает штраф за сложность, а именно, количество параметров. Когда вы сравниваете многоуровневые модели, модель с самым низким значением BIC является моделью оптимальной подгонки.
Это свойство пусто, если вы создаете объект gmdistribution
при помощи функции gmdistribution
.
Типы данных: single | double
Converged
— Отметьте указание на сходимостьtrue
| false
Это свойство доступно только для чтения.
Отметьте указание, сходится ли алгоритм Максимизации ожидания (EM) при подборе кривой Гауссовой модели смеси, заданной как true
или false
.
Можно изменить опции оптимизации при помощи аргумента пары "имя-значение" 'Options'
fitgmdist
.
Это свойство пусто, если вы создаете объект gmdistribution
при помощи функции gmdistribution
.
Типы данных: логический
NegativeLogLikelihood
— Отрицательный loglikelihoodЭто свойство доступно только для чтения.
Отрицательный loglikelihood подходящей Гауссовой модели смеси, учитывая входные данные X
fitgmdist
, заданного как скаляр.
Это свойство пусто, если вы создаете объект gmdistribution
при помощи функции gmdistribution
.
Типы данных: single | double
'NumIterations'
Количество итерацийЭто свойство доступно только для чтения.
Количество итераций в алгоритме Максимизации ожидания (EM), заданном как положительное целое число.
Можно изменить опции оптимизации, включая максимальное количество позволенных итераций, при помощи аргумента пары "имя-значение" 'Options'
fitgmdist
.
Это свойство пусто, если вы создаете объект gmdistribution
при помощи функции gmdistribution
.
Типы данных: double
ProbabilityTolerance
— Допуск к апостериорным вероятностям[0,1e-6]
Это свойство доступно только для чтения.
Допуск к апостериорным вероятностям, заданным как неотрицательное скалярное значение в области значений [0,1e-6]
.
Аргумент пары "имя-значение" 'ProbabilityTolerance'
fitgmdist
устанавливает это свойство.
Это свойство пусто, если вы создаете объект gmdistribution
при помощи функции gmdistribution
.
Типы данных: single | double
RegularizationValue
— Значение параметров регуляризацииЭто свойство доступно только для чтения.
Значение параметров регуляризации, заданное как неотрицательный скаляр.
Аргумент пары "имя-значение" 'RegularizationValue'
fitgmdist
устанавливает это свойство.
Это свойство пусто, если вы создаете объект gmdistribution
при помощи функции gmdistribution
.
Типы данных: single | double
cdf | Кумулятивная функция распределения для Гауссова распределения смеси |
cluster | Создайте кластеры из Гауссова распределения смеси |
mahal | Расстояние Mahalanobis до Гауссова компонента смеси |
pdf | Функция плотности вероятности для Гауссова распределения смеси |
posterior | Апостериорная вероятность Гауссова компонента смеси |
random | Случайная варьируемая величина от Гауссова распределения смеси |
gmdistribution
Создайте двухкомпонентное двумерное Гауссово распределение смеси при помощи функции 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])
fitgmdist
Сгенерируйте случайные варьируемые величины, которые следуют за смесью двух двумерных Распределений Гаусса при помощи функции 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.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.