DaviesBouldinEvaluation

Пакет: clustering.evaluation
Суперклассы: ClusterCriterion

Объект оценки кластеризации критерия Дэвиса-Буддина

Описание

DaviesBouldinEvaluation является объектом, состоящим из выборочных данных, данных кластеризации и значений критерия Дэвиса-Буддина, используемых для оценки оптимального количества кластеров. Создайте объект оценки кластеризации критерия Дэвиса-Буддина с помощью evalclusters.

Конструкция

eva = evalclusters(x,clust,'DaviesBouldin') создает объект оценки кластеризации критерия Дэвиса-Буддина.

eva = evalclusters(x,clust,'DaviesBouldin',Name,Value) создает объект оценки кластеризации критерия Дэвиса-Буддина с помощью дополнительных опций, заданных одним или несколькими аргументами пары "имя-значение".

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

расширить все

Входные данные, заданные как N -by - P матрица. N - количество наблюдений, а P - количество переменных.

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

Алгоритм кластеризации, заданный как один из следующих.

'kmeans'Группируйте данные в x использование kmeans алгоритм кластеризации с 'EmptyAction' установлено на 'singleton' и 'Replicates' установлено на 5.
'linkage'Группируйте данные в x использование clusterdata алгоритм агломеративной кластеризации с 'Linkage' установлено на 'ward'.
'gmdistribution'Группируйте данные в x использование gmdistribution Алгоритм распределения Гауссова смеси с 'SharedCov' установлено на true и 'Replicates' установлено на 5.

Если criterion является 'CalinskiHarabasz', 'DaviesBouldin', или 'silhouette'можно задать алгоритм кластеризации с помощью указателя на функцию. Функция должна иметь вид C = clustfun(DATA,K), где DATA - данные, которые будут кластеризованы, и K количество кластеров. Область выхода clustfun должно быть одно из следующих:

  • Вектор из целых чисел, представляющий индекс кластера для каждого наблюдения в DATA. Должны быть K уникальные значения в этом векторе.

  • Числовая n -by - K матрица счета для классов наблюдений n и K. В этом случае индекс кластера для каждого наблюдения определяется путем взятия наибольшего значения баллов в каждой строке.

Если criterion является 'CalinskiHarabasz', 'DaviesBouldin', или 'silhouette', можно также задать clust как n -by - K матрица, содержащая предлагаемые кластерные решения. n - количество наблюдений в выборочных данных, а K - количество предложенных решений кластеризации. Столбец j содержит индексы кластеров для каждой из точек N в j-м решении кластеризации.

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

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'KList',[1:5] задает для тестирования 1, 2, 3, 4 и 5 кластеров оптимальное число.

Список вычисляемых кластеров, заданный как разделенная разделенными запятой парами, состоящая из 'KList' и вектор положительных целочисленных значений. Вы должны задать KList когда clust является именем алгоритма кластеризации или указателем на функцию. Когда criterion является 'gap', clust должен быть вектором символов, строковым скаляром или указателем на функцию, и вы должны задать KList.

Пример: 'KList',[1:6]

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

Свойства

ClusteringFunction

Алгоритм кластеризации, используемый для кластеризации входных данных, хранится как допустимое имя алгоритма кластеризации или указатель на функцию. Если решения кластеризации предусмотрены во входе, ClusteringFunction пуст.

CriterionName

Имя критерия, используемого для оценки кластеризации, сохраненное как допустимое имя критерия.

CriterionValues

Значения критериев, соответствующие каждому предложенному количеству кластеров в InspectedK, сохраненный как вектор числовых значений.

InspectedK

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

Missing

Логический флаг для исключенных данных, сохраненный как вектор-столбец логических значений. Если Missing равен true, затем соответствующее значение в матрице данных x не используется в кластерном решении.

NumObservations

Количество наблюдений в матричной X данных, минус количество отсутствующих (NaN) значения в X, сохранен в виде положительного целого значения.

OptimalK

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

OptimalY

Оптимальное решение кластеризации, соответствующее OptimalK, сохраненный как вектор-столбец положительных целых чисел значений. Если решения кластеризации предусмотрены во входе, OptimalY пуст.

X

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

Методы

Унаследованные методы

addKОцените дополнительное количество кластеров
компактныйКомпактный объект оценки кластеризации
график Постройте графики значений критериев объекта оценки кластеризации

Примеры

свернуть все

Оцените оптимальное количество кластеров с помощью критерия оценки кластеризации Дэвиса-Буддина.

Сгенерируйте выборочные данные, содержащие случайные числа из трех многомерных распределений с различными значениями параметров.

rng('default');  % For reproducibility
mu1 = [2 2];
sigma1 = [0.9 -0.0255; -0.0255 0.9];

mu2 = [5 5];
sigma2 = [0.5 0 ; 0 0.3];

mu3 = [-2, -2];
sigma3 = [1 0 ; 0 0.9];
    
N = 200;

X = [mvnrnd(mu1,sigma1,N);...
     mvnrnd(mu2,sigma2,N);...
     mvnrnd(mu3,sigma3,N)];

Оцените оптимальное количество кластеров с помощью критерия Дэвиса-Буддина. Группируйте данные с помощью kmeans.

E = evalclusters(X,'kmeans','DaviesBouldin','klist',[1:6])
E = 
  DaviesBouldinEvaluation with properties:

    NumObservations: 600
         InspectedK: [1 2 3 4 5 6]
    CriterionValues: [NaN 0.4663 0.4454 0.8316 1.0444 0.9236]
           OptimalK: 3

The OptimalK значение указывает, что на основе критерия Дэвиса-Бульдена оптимальное количество кластеров составляет три.

Постройте график значений критерия Дэвиса-Буддина для каждого количества протестированных кластеров.

figure;
plot(E)

Figure contains an axes. The axes contains 2 objects of type line.

График показывает, что самое низкое значение Дэвиса-Буддина происходит в трех кластерах, что позволяет предположить, что оптимальное количество кластеров составляет три.

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

figure;
gscatter(X(:,1),X(:,2),E.OptimalY,'rbg','xod')

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

Рисунок показывает три различных кластера в данных: Кластер 1 находится в левом нижнем углу, кластер 2 находится в правом верхнем углу, а кластер 3 находится рядом с центром графика.

Подробнее о

расширить все

Ссылки

[1] Дэвис, Д. Л. и Д. У. Буддин. «Мера разделения кластера». Транзакции IEEE по шаблонному анализу и машинному анализу. Том PAMI-1, № 2, 1979, с. 224-227.