GapEvaluation

Пакет: clustering.evaluation
Суперклассы: 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', можно задать кластеризирующийся алгоритм с помощью указателя на функцию (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:5],'Distance','cityblock' задает, чтобы протестировать 1, 2, 3, 4, и 5 кластеров с помощью метрики расстояния городского квартала.

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

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

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

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

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

Для получения дальнейшей информации о каждой метрике расстояния, смотрите pdist.

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

d2 = distfun(XI,XJ),
где XI является 1 n вектором, соответствующим одной строке входной матрицы X, и XJ является m 2 n матрицей, соответствующей нескольким строкам X. distfun должен возвратить m 2 1 вектор расстояний d2, k которого th элемент является расстоянием между 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 и выберите самое маленькое количество удовлетворения кластеров

Разрыв(K)GAPMAXSE(GAPMAX),

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

'firstMaxSE'

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

Разрыв(K)Разрыв(K+1)SE(K+1),

где K является количеством кластеров, Разрыв (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
PetalLength = meas(:,3);
PetalWidth = meas(:,4);
ClusterGroup = eva.OptimalY;
gscatter(PetalLength,PetalWidth,ClusterGroup,'rbgkc','xod^*');

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

Больше о

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

Ссылки

[1] Tibshirani, R., Г. Вальтер и Т. Хэсти. “Оценивая количество кластеров в наборе данных через статистическую величину разрыва”. Журнал Королевского Статистического Общества: Серии B. Издание 63, Часть 2, 2001, стр 411–423.