cluster

Создайте кластеры из Гауссова распределения смеси

Описание

пример

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 -на-1 положительный целочисленный вектор, где n - количество наблюдений в X.

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

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

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

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

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

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

logpdf(i)=logj=1kL(Cj|Oi)P(Cj),

где L (C j | O j) - вероятность компонента j заданное наблюдение, и P (C j) является вероятностью наличия компонента j. cluster функция вычисляет термин правдоподобия при помощи многомерного нормального PDF jКомпонент смеси Гауссов, оцениваемый при наблюдении i. Вероятности компонента являются пропорциями смешения компонентов смеси, ComponentProportion свойство gm.

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

d2(i,j) - квадратное расстояние наблюдения i на jКомпонент смеси Гауссов.

Введенный в R2007b