exponenta event banner

CalinskiHarabaszEvaluation

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

Объект оценки кластеризации критериев Калинского-Харабаша

Описание

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

Строительство

eva = evalclusters(x,clust,'CalinskiHarabasz') создает объект оценки кластеризации критериев Калински-Харабаша.

eva = evalclusters(x,clust,'CalinskiHarabasz',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:6] задает тестирование кластеров 1, 2, 3, 4, 5 и 6 для поиска оптимального числа.

Список вычисляемого количества кластеров, указанных как пара, разделенная запятыми, состоящая из '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Оценка дополнительного количества кластеров
компактныйКомпактный объект оценки кластеризации
график Печать значений критериев объекта оценки кластеризации

Примеры

свернуть все

Оцените оптимальное количество кластеров, используя критерий оценки кластеризации Калински-Харабаша.

Загрузите образцы данных.

load fisheriris;

Данные содержат измерения длины и ширины по чашелистикам и лепесткам трёх видов цветков радужки.

Оцените оптимальное количество кластеров по критерию Калински-Харабаша. Кластеризация данных с помощью kmeans.

rng('default');  % For reproducibility
eva = evalclusters(meas,'kmeans','CalinskiHarabasz','KList',[1:6])
eva = 
  CalinskiHarabaszEvaluation with properties:

    NumObservations: 150
         InspectedK: [1 2 3 4 5 6]
    CriterionValues: [Inf 513.9245 561.6278 530.4871 456.1279 469.5068]
           OptimalK: 1

OptimalK значение указывает, что на основе критерия Калински-Харабаша оптимальное число кластеров равно трем.

Постройте график значений критериев Калински-Харабаша для каждого количества протестированных кластеров.

figure;
plot(eva);

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

Сюжет показывает, что наивысшее значение Калински-Харабаша встречается в трёх кластерах, предполагая, что оптимальное число кластеров - три.

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

PetalLength = meas(:,3);
PetalWidth = meas(:,4);
ClusterGroup = eva.OptimalY;
figure;
gscatter(PetalLength,PetalWidth,ClusterGroup,'rbg','xod');

Figure contains an axes. The axes contains an object of type line. This object represents 1.

На графике показан кластер 3 в левом нижнем углу, полностью отделённый от двух других кластеров. Кластер 3 содержит цветки с наименьшей шириной и длиной лепестков. Кластер 1 находится в правом верхнем углу, и содержит цветки с наибольшей шириной и длиной лепестков. Кластер 2 находится вблизи центра участка, и содержит цветы с измерениями между этими двумя крайностями.

Подробнее

развернуть все

Ссылки

[1] Калински, Т. и Дж. Харабаш. «Метод дендрита для кластерного анализа». Сообщения в статистике. т. 3, № 1, 1974, стр. 1-27.