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) также возвращает расстояние Mahalanobis в квадрате каждого наблюдения в 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])

Разделите данные в кластеры путем передачи подходящего GMM и данных к cluster.

idx = cluster(gm,X);

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

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

Входные параметры

свернуть все

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

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

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

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

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

Типы данных: 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)=logj=1kL(Cj|Oi)P(Cj),

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

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

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

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