Оцените решения по кластеризации
eva = evalclusters(x,clust,criterion)
eva = evalclusters(x,clust,criterion,Name,Value)
создает кластеризирующийся объект оценки, использующий дополнительные опции, заданные одним или несколькими аргументами пары "имя-значение".eva
= evalclusters(x
,clust
,criterion
,Name,Value
)
Оцените оптимальное количество кластеров с помощью 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 оптимальное количество кластеров равняется трем.
Используйте входную матрицу предложенных решений по кластеризации, чтобы оценить оптимальное количество кластеров.
Загрузите выборочные данные.
load fisheriris;
Данные содержат измерения длины и ширины от чашелистиков и лепестков трех разновидностей ирисовых цветов.
Используйте kmeans
, чтобы создать входную матрицу предложенных решений по кластеризации для измерений длины чашелистика, с помощью 1, 2, 3, 4, 5, и 6 кластеров.
clust = zeros(size(meas,1),6); for i=1:6 clust(:,i) = kmeans(meas,i,'emptyaction','singleton',... 'replicate',5); end
Каждая строка clust
соответствует одному измерению длины чашелистика. Каждый из этих шести столбцов соответствует решению по кластеризации, содержащему 1 - 6 кластеров.
Оцените оптимальное количество кластеров с помощью критерия Calinski-Harabasz.
eva = evalclusters(meas,clust,'CalinskiHarabasz')
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 оптимальное количество кластеров равняется трем.
Используйте указатель на функцию, чтобы задать кластеризирующийся алгоритм, затем оцените оптимальное количество кластеров.
Загрузите выборочные данные.
load fisheriris;
Данные содержат измерения длины и ширины от чашелистиков и лепестков трех разновидностей ирисовых цветов.
Используйте указатель на функцию, чтобы задать кластеризирующийся алгоритм.
myfunc = @(X,K)(kmeans(X, K, 'emptyaction','singleton',... 'replicate',5));
Оцените оптимальное количество кластеров для данных о длине чашелистика с помощью критерия Calinski-Harabasz.
eva = evalclusters(meas,myfunc,'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 оптимальное количество кластеров равняется трем.
x
Входные данныеВходные данные, заданные как N-by-P матрица. N является количеством наблюдений, и P является количеством переменных.
Типы данных: single | double
clust
— Кластеризация алгоритма'kmeans'
| 'linkage'
| 'gmdistribution'
| матрица решений по кластеризации | указатель на функциюКластеризация алгоритма, заданного как одно из следующих.
'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
criterion
— Кластеризация критерия оценки'CalinskiHarabasz'
| 'DaviesBouldin'
| 'gap'
| 'silhouette'
Кластеризация критерия оценки, заданного как одно из следующих.
'CalinskiHarabasz' | Создайте CalinskiHarabaszEvaluation , кластеризирующий объект оценки, содержащий индексные значения Calinski-Harabasz. |
'DaviesBouldin' | Создайте объект оценки кластера DaviesBouldinEvaluation , содержащий индексные значения Дэвиса-Булдина. |
'gap' | Создайте объект оценки кластера GapEvaluation , содержащий значения критерия разрыва. |
'silhouette' | Создайте объект оценки кластера SilhouetteEvaluation , содержащий значения контура. |
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'KList',[1:5],'Distance','cityblock'
задает, чтобы протестировать 1, 2, 3, 4, и 5 кластеров с помощью метрики расстояния городского квартала.'KList'
— Список количества кластеров, чтобы оценитьСписок количества кластеров, чтобы оценить, заданный как пара, разделенная запятой, состоящая из 'KList'
и вектор положительных целочисленных значений. Необходимо задать KList
, когда clust
является кластеризирующимся именем алгоритма или указателем на функцию. Когда criterion
является 'gap'
, clust
должен быть вектором символов, скаляром строки или указателем на функцию, и необходимо задать KList
.
Пример: 'KList',[1:6]
Типы данных: single | double
'Distance'
— Метрика расстояния'sqEuclidean'
(значение по умолчанию) | 'Euclidean'
| 'cityblock'
| вектор | функционирует |...Метрика расстояния, используемая для вычисления значений критерия, заданных как пара, разделенная запятой, состоящая из 'Distance'
и одно из следующих.
'sqEuclidean' | Придал Евклидову расстоянию квадратную форму |
'Euclidean' | Евклидово расстояние. Эта опция не допустима для алгоритма кластеризации kmeans . |
'cityblock' | Сумма абсолютных разностей |
'cosine' | Один минус косинус включенного угла между точками (обработанный как векторы) |
'correlation' | Один минус корреляция выборки между точками (обработанный как последовательности значений) |
'Hamming' | Процент координат, которые отличаются. Эта опция только допустима для критерия Silhouette . |
'Jaccard' | Процент ненулевых координат, которые отличаются. Эта опция только допустима для критерия Silhouette . |
Для получения дальнейшей информации о каждой метрике расстояния, смотрите 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
, программных ошибок.
Если criterion
является 'silhouette'
, можно также задать Distance
как выходной вектор, созданный функциональным pdist
.
Когда clust
является 'kmeans'
или 'gmdistribution'
, evalclusters
использует метрику расстояния, заданную для Distance
, чтобы кластеризировать данные.
Если clust
является 'linkage'
, и Distance
является или 'sqEuclidean'
или 'Euclidean'
, то кластеризирующийся алгоритм использует Евклидово расстояние и связь Уорда.
Если clust
является 'linkage'
, и Distance
является любой другой метрикой, то кластеризирующийся алгоритм использует заданную метрику расстояния и среднюю связь.
Во всех других случаях метрика расстояния, заданная для Distance
, должна совпадать с метрикой расстояния, используемой в кластеризирующемся алгоритме, чтобы получить значимые результаты.
Пример: 'Distance','Euclidean'
Типы данных: single
| double
| char
| string
| function_handle
'ClusterPriors'
— Априорные вероятности для каждого кластера'empirical'
(значение по умолчанию) | 'equal'
Априорные вероятности для каждого кластера, заданного как пара, разделенная запятой, состоящая из 'ClusterPriors'
и одно из следующих.
'empirical' | Вычислите полное значение контура для решения по кластеризации путем усреднения значений контура для всех точек. Каждый кластер способствует полному значению контура пропорционально к его размеру. |
'equal' | Вычислите полное значение контура для решения по кластеризации путем усреднения значений контура для всех точек в каждом кластере, и затем усреднения тех значений через все кластеры. Каждый кластер способствует одинаково полному значению контура, независимо от его размера. |
Пример: 'ClusterPriors','empirical'
B
Количество наборов справочных данных100
(значение по умолчанию) | положительное целочисленное значениеКоличество наборов справочных данных сгенерировало от ссылочного распределения ReferenceDistribution
, заданный как пара, разделенная запятой, состоящая из 'B'
и положительного целочисленного значения.
Пример: 'B',150
Типы данных: single | double
'ReferenceDistribution'
— Метод генерации справочных данных'PCA'
(значение по умолчанию) | 'uniform'
Метод генерации справочных данных, заданный как пара, разделенная запятой, состоящая из 'ReferenceDistributions'
и одно из следующих.
'PCA' | Сгенерируйте справочные данные от равномерного распределения по полю, выровненному с основными компонентами матрицы данных x . |
'uniform' | Сгенерируйте справочные данные однородно в области значений каждой функции в матрице данных x . |
Пример: 'ReferenceDistribution','uniform'
'SearchMethod'
— Метод для выбора оптимального количества кластеров'globalMaxSE'
(значение по умолчанию) | 'firstMaxSE'
Метод для выбора оптимального количества кластеров, заданных как пара, разделенная запятой, состоящая из 'SearchMethod'
и одно из следующих.
'globalMaxSE' |
Оцените каждое предложенное количество кластеров в где K является количеством кластеров, Разрыв (K) является значением разрыва для решения по кластеризации с кластерами K, GAPMAX является самым большим значением разрыва, и SE (GAPMAX) является стандартной погрешностью, соответствующей самому большому значению разрыва. |
'firstMaxSE' |
Оцените каждое предложенное количество кластеров в где K является количеством кластеров, Разрыв (K) является значением разрыва для решения по кластеризации с кластерами K, и SE (K + 1) является стандартной погрешностью решения по кластеризации с K + 1 кластер. |
Пример: 'SearchMethod','globalMaxSE'
eva
— Кластеризация данных об оценкеКластеризация данных об оценке, возвращенных как кластеризирующийся объект оценки.
CalinskiHarabaszEvaluation
| DaviesBouldinEvaluation
| GapEvaluation
| SilhouetteEvaluation
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.