CalinskiHarabaszEvaluation

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

Критерий Calinski-Harabasz, кластеризирующий объект оценки

Описание

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

Конструкция

eva = evalclusters(x,clust,'CalinskiHarabasz') создает критерий Calinski-Harabasz, кластеризирующий объект оценки.

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

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

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

Входные данные, заданные как 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', можно задать кластеризирующийся алгоритм с помощью указателя на функцию (MATLAB). Функция должна иметь форму 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 th решение по кластеризации.

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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, сохраненном как вектор численных значений.

Distance

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

InspectedK

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

Missing

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

NumObservations

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

OptimalK

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

OptimalY

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

X

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

Методы

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

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

Примеры

свернуть все

Оцените оптимальное количество кластеров с помощью Calinski-Harabasz кластеризирующийся критерий оценки.

Загрузите выборочные данные.

load fisheriris;

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

Оцените оптимальное количество кластеров с помощью критерия Calinski-Harabasz. Кластеризируйте данные с помощью 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: [NaN 513.9245 561.6278 530.4871 456.1279 469.5068]
           OptimalK: 3

Значение OptimalK указывает, что на основе критерия Calinski-Harabasz оптимальное количество кластеров равняется трем.

Постройте значения критерия Calinski-Harabasz для каждого количества протестированных кластеров.

figure;
plot(eva);

График показывает, что самое высокое значение Calinski-Harabasz происходит в трех кластерах, предполагая, что оптимальное количество кластеров равняется трем.

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

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

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

Больше о

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

Ссылки

[1] Калинский, T. и Дж. Харабэсз. “Метод дендрита для кластерного анализа”. Коммуникации в Статистике. Издание 3, № 1, 1974, стр 1–27.

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