exponenta event banner

группа

Построить кластеры из гауссова распределения смеси

Описание

пример

idx = cluster(gm,X) секционирует данные в X на k кластеров, определяемых компонентами k гауссовой смеси в gm. Значение в поле idx(i) - кластерный индекс наблюдения i и указывает компонент с наибольшей апостериорной вероятностью при наблюдении i.

[idx,nlogL] = cluster(gm,X) также возвращает отрицательную логику модели гауссовой смеси gm учитывая данные X.

[idx,nlogL,P] = cluster(gm,X) также возвращает задние вероятности каждого гауссова компонента смеси в gm учитывая каждое наблюдение в X.

[idx,nlogL,P,logpdf] = cluster(gm,X) также возвращает логарифм оцененной функции плотности вероятности (pdf), вычисленной при каждом наблюдении в X.

[idx,nlogL,P,logpdf,d2] = cluster(gm,X) также возвращает квадрат расстояния Махаланобиса каждого наблюдения в X к каждому гауссову компоненту смеси в gm.

Примеры

свернуть все

Генерируйте случайные вариации, которые следуют за смесью двух двумерных гауссовых распределений, используя mvnrnd функция. Поместите модель смеси Гаусса (GMM) в сгенерированные данные с помощью fitgmdist функция. Затем используйте cluster функция для разделения данных на два кластера, определяемых установленными компонентами GMM.

Определите параметры распределения (средние и ковариации) двух двухмерных гауссовых компонентов смеси.

mu1 = [2 2];          % Mean of the 1st component
sigma1 = [2 0; 0 1];  % Covariance of the 1st component
mu2 = [-2 -1];        % 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);

График X с помощью scatter. Визуализация подогнанной модели gm с помощью pdf и fcontour.

figure
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,[-6 8 -4 6])

Figure contains an axes. The axes contains 2 objects of type scatter, functioncontour.

Разбейте данные на кластеры, передав соответствующий GMM и данные в cluster.

idx = cluster(gm,X);

Использовать gscatter для создания графика разброса, сгруппированного по idx.

figure;
gscatter(X(:,1),X(:,2),idx);
legend('Cluster 1','Cluster 2','Location','best');

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Cluster 1, Cluster 2.

Входные аргументы

свернуть все

Распределение гауссовой смеси, также называемое моделью гауссовой смеси (GMM), указанное как gmdistribution объект.

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

Данные, определенные как n-by-m числовая матрица, где n - количество наблюдений, а m - количество переменных в каждом наблюдении.

Для получения значимых результатов кластеризации X должны исходить из той же совокупности, что и данные, используемые для создания gm.

Если строка X содержит NaNs, то cluster исключает строку из расчета. Соответствующее значение в idx, P, logpdf, и d2 является NaN.

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

Выходные аргументы

свернуть все

Индекс кластера, возвращаемый как положительный целочисленный вектор n-by-1, где n - количество наблюдений в X.

idx(i) - кластерный индекс наблюдения i и указывает компонент гауссовой смеси с наибольшей апостериорной вероятностью при наблюдении i.

Отрицательное логарифмическое значение модели гауссовой смеси gm учитывая данные X, возвращается в виде числового значения.

Задняя вероятность каждого гауссова компонента смеси в gm учитывая каждое наблюдение в X, возвращаемый в виде n-by-k числового вектора, где n - число наблюдений в X k - количество компонентов смеси в gm.

P(i,j) - задняя вероятность jth Гауссова компонента смеси дано наблюдение i, Вероятность ( компонентj | наблюдение i).

Логарифм расчетного pdf, оцениваемый при каждом наблюдении в X, возвращенный в виде n-by-1 числового вектора, где n - количество наблюдений в X.

logpdf(i) - логарифм расчетного pdf при наблюдении i. cluster функция вычисляет оцененный pdf, используя вероятность каждого компонента, заданную каждым наблюдением, и вероятности компонента.

logpdf (i) =log∑j=1kL (Cj 'Oi) P (Cj),

где L (Cj 'Oj) - вероятность компонентаj данное наблюдение i, и P (Cj) - вероятность компонентаj. cluster функция вычисляет термин правдоподобия с помощью многомерного нормального pdf jTh гауссова компонента смеси оценена при наблюдении i. Вероятности компонентов представляют собой пропорции смешивания компонентов смеси, ComponentProportion имущество gm.

Квадрат расстояния Махаланобиса каждого наблюдения в X к каждому гауссову компоненту смеси в gm, возвращается в виде n-на-k числовой матрицы, где n - количество наблюдений в X k - количество компонентов смеси в gm.

d2(i,j) - расстояние наблюдения в квадрате i в jTh гауссова смешанная составляющая.

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