exponenta event banner

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

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.