exponenta event banner

GapEvaluation

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

Объект оценки кластеризации критериев разрыва

Описание

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

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

eva = evalclusters(x,clust,'Gap') создает объект оценки кластеризации критериев разрыва.

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

Количество наборов ссылочных данных, сгенерированных из ссылочного распределения ReferenceDistribution, указанная как пара, разделенная запятыми, состоящая из 'B' и положительное целое значение.

Пример: 'B',150

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

Метрика расстояния, используемая для вычисления значений критерия, заданная как пара, разделенная запятыми, состоящая из 'Distance' и одно из следующих.

'sqEuclidean'Квадрат евклидова дистанции
'Euclidean'Евклидово расстояние
'cityblock'Сумма абсолютных разностей
'cosine'Один минус косинус включенного угла между точками (рассматривается как векторы)
'correlation'Один минус выборочная корреляция между точками (обрабатывается как последовательности значений)

Подробные сведения о метрике расстояния см. в разделе pdist.

Можно также задать функцию для метрики расстояния с помощью дескриптора функции. Функция расстояния должна иметь вид

d2 = distfun(XI,XJ),
где XI - вектор 1 на n, соответствующий одной строке входной матрицы; X, и XJ является матрицей м2-на-n, соответствующей множеству строк X. distfun должен возвращать вектор расстояний м2 на 1 d2, k-й элемент которого является расстоянием между XI и XJ(k,:).

Distance принимает дескриптор функции, только если алгоритм кластеризации clust принимает дескриптор функции в качестве метрики расстояния. Например, kmeans алгоритм кластеризации не принимает дескриптор функции в качестве метрики расстояния. Поэтому, если вы используете kmeans алгоритм и затем укажите дескриптор функции для Distance, ошибки программного обеспечения.

  • Когда clust является 'kmeans' или 'gmdistribution', evalclusters использует метрику расстояния, указанную для Distance для кластеризации данных.

  • Если clust является 'linkage', и Distance является либо 'sqEuclidean' или 'Euclidean'затем алгоритм кластеризации использует евклидово расстояние и связь Уорда.

  • Если clust является 'linkage' и Distance - любая другая метрика, тогда алгоритм кластеризации использует указанную метрику расстояния и среднюю связь.

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

Пример: 'Distance','Euclidean'

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

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

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

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

Метод формирования ссылочных данных, указанный как разделенная запятыми пара, состоящая из 'ReferenceDistributions' и одно из следующих.

'PCA'Создание ссылочных данных из равномерного распределения по рамке, выровненной с основными компонентами матрицы данных x.
'uniform'Создание ссылочных данных равномерно по всему диапазону каждого элемента в матрице данных x.

Пример: 'ReferenceDistribution','uniform'

Метод выбора оптимального количества кластеров, определяемый как разделенная запятыми пара, состоящая из 'SearchMethod' и одно из следующих.

'globalMaxSE'

Оцените каждое предлагаемое количество кластеров в KList и выберите наименьшее число кластеров, удовлетворяющих требованиям

Gap (K) ≥GAPMAX−SE (GAPMAX),

где K - количество кластеров, Gap (K) - значение зазора для решения кластеризации с K кластерами, GAPMAX - наибольшее значение зазора, а SE (GAPMAX) - стандартная ошибка, соответствующая наибольшему значению зазора.

'firstMaxSE'

Оцените каждое предлагаемое количество кластеров в KList и выберите наименьшее число кластеров, удовлетворяющих требованиям

Зазор (K) ≥Gap (K + 1) SE (K + 1),

где K - число кластеров, Gap (K) - значение зазора для решения кластеризации с K кластерами, а SE (K + 1) - стандартная ошибка решения кластеризации с K + 1 кластерами.

Пример: 'SearchMethod','globalMaxSE'

Свойства

B

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

ClusteringFunction

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

CriterionName

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

CriterionValues

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

Distance

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

ExpectedLogW

Ожидание натурального логарифма W на основе сгенерированных опорных данных, хранящихся в виде вектора скалярных значений. W - дисперсия внутри кластера, вычисленная с использованием метрики расстояния. Distance.

InspectedK

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

LogW

Натуральный логарифм W на основе входных данных, хранящихся как вектор скалярных значений. W - дисперсия внутри кластера, вычисленная с использованием метрики расстояния. Distance.

Missing

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

NumObservations

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

OptimalK

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

OptimalY

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

ReferenceDistribution

Метод формирования ссылочных данных, сохраненный как допустимое имя ссылочного распределения.

SE

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

SearchMethod

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

StdLogW

Стандартное отклонение натурального логарифма W от эталонных данных для каждого числа кластеров в InspectedK. W - дисперсия внутри кластера, вычисленная с использованием метрики расстояния. Distance.

X

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

Методы

increaseBУвеличить наборы ссылочных данных

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

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

Примеры

свернуть все

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

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

load fisheriris

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

Вычислите количество кластеров на основе значений критерия разрыва. Кластеризация данных с помощью kmeans.

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

    NumObservations: 150
         InspectedK: [1 2 3 4 5 6]
    CriterionValues: [0.0720 0.5928 0.8762 1.0114 1.0534 1.0720]
           OptimalK: 5

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

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

plot(eva)

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

На основе графика максимальное значение критерия зазора встречается в шести кластерах. Однако значение в пяти кластерах находится в пределах одной стандартной ошибки максимума, поэтому предлагаемое оптимальное число кластеров равно пяти.

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

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

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

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

Подробнее

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

Ссылки

[1] Тибширани, Р., Г. Уолтер и Т. Хасти. «Оценка количества кластеров в наборе данных с помощью статистики разрыва». Журнал Королевского статистического общества: Серия B. Том 63, Часть 2, 2001, стр. 411-423.