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

The 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] Calinski, T., and J. Harabasz. «Метод дендрита для кластерного анализа». Коммуникации в статистике. Том 3, № 1, 1974, стр. 1-27.