кластер

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

Синтаксис

idx = cluster(gm,X)
[idx,nlogL] = cluster(gm,X)
[idx,nlogL,P] = cluster(gm,X)
[idx,nlogL,P,logpdf] = cluster(gm,X)
[idx,nlogL,P,logpdf,d2] = cluster(gm,X)

Описание

пример

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

[idx,nlogL] = cluster(gm,X) также возвращает отрицательный loglikelihood Гауссовой модели 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)reshape(pdf(gm,[x(:) y(:)]),size(x));
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 исключает строку из вычисления. Соответствующим значением в idx, P, logpdf и d2 является NaN.

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

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

свернуть все

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

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

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

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

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

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

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

logpdf(i)=журналj=1kL(Cj|Oi)P(Cj),

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

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

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

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