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 - m матрица 2-by- n, соответствующая нескольким строкам X. distfun должен вернуть m вектор расстояний 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)GAPMAXSE(GAPMAX),

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

'firstMaxSE'

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

Gap(K)Промежуток(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

The 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. Vol. 63, Part 2, 2001, pp. 411-423.

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