Создание модели смеси Гаусса
A gmdistribution объект хранит распределение гауссовой смеси, также называемое моделью гауссовой смеси (GMM), которое является многомерным распределением, состоящим из многомерных компонентов гауссова распределения. Каждый компонент определяется его средним значением и ковариацией. Смесь определяется вектором пропорций смешивания, где каждая пропорция смешивания представляет долю популяции, описанную соответствующим компонентом.
Можно создать gmdistribution объект модели двумя способами.
Используйте gmdistribution (описана здесь) для создания gmdistribution путем указания параметров распределения.
Используйте fitgmdist функция для соответствия gmdistribution объект модели для данных с фиксированным числом компонентов.
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 задает это свойство.
Типы данных: logical
Следующие свойства применяются только к подогнанному объекту, созданному с помощью fitgmdist. Значения этих свойств пусты при создании gmdistribution с помощью gmdistribution функция.
AIC - Информационный критерий АкаикеЭто свойство доступно только для чтения.
Информационный критерий Akaike (AIC), указанный как скаляр. AIC = 2*NlogL + 2*p, где NlogL является отрицательным источником средств к существованию ( NegativeLogLikelihood собственность) и p - количество оцениваемых параметров.
AIC - это инструмент выбора модели, который можно использовать для сравнения нескольких моделей, соответствующих одним и тем же данным. AIC - это показатель соответствия модели на основе правдоподобия, который включает штраф за сложность, в частности, количество параметров. При сравнении нескольких моделей модель с меньшим значением AIC становится лучше.
Это свойство пусто при создании gmdistribution с помощью gmdistribution функция.
Типы данных: single | double
BIC - Информационный критерий БайесаЭто свойство доступно только для чтения.
Информационный критерий Байеса (BIC), указанный как скаляр. BIC = 2*NlogL + p*log(n), где NlogL является отрицательным источником средств к существованию ( NegativeLogLikelihood свойство), n - количество наблюдений, и p - количество оцениваемых параметров.
BIC - это инструмент выбора модели, который можно использовать для сравнения нескольких моделей, соответствующих одним и тем же данным. BIC - это показатель соответствия модели на основе правдоподобия, который включает штраф за сложность, в частности, количество параметров. При сравнении нескольких моделей модель с наименьшим значением BIC является моделью наилучшего подбора.
Это свойство пусто при создании gmdistribution с помощью gmdistribution функция.
Типы данных: single | double
Converged - Флаг, указывающий сходимостьtrue | falseЭто свойство доступно только для чтения.
Флаг, указывающий, сходится ли алгоритм EM (Expectation-Maximization, EM) при подгонке модели смеси Гаусса, указанный как true или false.
Параметры оптимизации можно изменить с помощью 'Options' аргумент пары имя-значение fitgmdist.
Это свойство пусто при создании gmdistribution с помощью gmdistribution функция.
Типы данных: logical
NegativeLogLikelihood - Отрицательный источник средств к существованиюЭто свойство доступно только для чтения.
Отрицательный логарифм модели подогнанной гауссовой смеси с учетом входных данных 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 | Расстояние Махаланобиса до гауссова компонента смеси |
pdf | Функция плотности вероятности для распределения гауссовой смеси |
posterior | Задняя вероятность гауссова компонента смеси |
random | Случайная вариация из распределения гауссовой смеси |
gmdistributionСоздайте двухкомпонентное двумерное распределение гауссовой смеси с помощью gmdistribution функция.
Определите параметры распределения (средние и ковариации) двух двухмерных гауссовых компонентов смеси.
mu = [1 2;-3 -5];
sigma = cat(3,[2 .5],[1 1]) % 1-by-2-by-2 arraysigma =
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])

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 свойство, представляющее отрицательную логику данных 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])

[1] Маклахлан, G. и D. Кожица. Модели конечных смесей. Хобокен, Нью-Джерси: John Wiley & Sons, Inc., 2000.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.