График контура
silhouette(
принимает одно или несколько дополнительных метрических значений параметров расстояния, когда вы задаете X
,clust
,Distance
,DistParameter
)Distance
как пользовательский указатель на функцию расстояния @
это принимает дополнительные значения параметров.distfun
Создайте графики контура из кластеризованных данных с помощью различных метрик расстояния.
Сгенерируйте данные о случайной выборке.
rng('default') % For reproducibility X = [randn(10,2)+3;randn(10,2)-3];
Создайте график рассеивания данных.
scatter(X(:,1),X(:,2));
title('Randomly Generated Data');
График рассеивания показывает, что данные, кажется, разделены в два кластера равного размера.
Разделите данные в два кластера с помощью kmeans
со значением по умолчанию придал Евклидовой метрике расстояния квадратную форму.
clust = kmeans(X,2);
clust
содержит кластерные индексы данных.
Создайте график контура из кластеризованных данных с помощью Евклидовой метрики расстояния значения по умолчанию в квадрате.
silhouette(X,clust)
График контура показывает, что данные разделены в два кластера равного размера. Все точки в этих двух кластерах имеют большие значения контура (0.8 или больше), указывая, что кластеры хорошо разделяются.
Создайте график контура из кластеризованных данных с помощью Евклидовой метрики расстояния.
silhouette(X,clust,'Euclidean')
График контура показывает, что данные разделены в два кластера равного размера. Все точки в этих двух кластерах имеют большие значения контура (0.6 или больше), указывая, что кластеры хорошо разделяются.
Вычислите значения контура из кластеризованных данных.
Сгенерируйте данные о случайной выборке.
rng('default') % For reproducibility X = [randn(10,2)+1;randn(10,2)-1];
Кластеризируйте данные в X
на основе суммы абсолютных разностей в расстоянии при помощи kmeans
.
clust = kmeans(X,2,'distance','cityblock');
clust
содержит кластерные индексы данных.
Вычислите значения контура из кластеризованных данных. Задайте метрику расстояния как 'cityblock'
указать что kmeans
кластеризация основана на сумме абсолютных разностей.
s = silhouette(X,clust,'cityblock')
s = 20×1
0.0816
0.5848
0.1906
0.2781
0.3954
0.4050
0.0897
0.5416
0.6203
0.6664
⋮
Найдите значения контура из кластеризованных данных с помощью пользовательской метрики расстояния хи-квадрата. Проверьте, что метрика расстояния хи-квадрата эквивалентна Евклидовой метрике расстояния, но с дополнительным масштабным коэффициентом.
Сгенерируйте данные о случайной выборке.
rng('default'); % For reproducibility X = [randn(10,2)+3;randn(10,2)-3];
Кластеризируйте данные в X
использование kmeans
со значением по умолчанию придал Евклидовой метрике расстояния квадратную форму.
clust = kmeans(X,2);
Найдите значения контура и создайте график контура из кластеризованных данных с помощью Евклидовой метрики расстояния.
[s,h] = silhouette(X,clust,'Euclidean')
s = 20×1
0.6472
0.7241
0.5682
0.7658
0.7864
0.6397
0.7253
0.7783
0.7054
0.7442
⋮
h = Figure (1) with properties: Number: 1 Name: '' Color: [1 1 1] Position: [360 502 560 420] Units: 'pixels' Show all properties
Расстояние хи-квадрата между J
- размерные точки x и z
где вес, сопоставленный с размерностью j.
Установите веса для каждой размерности и задайте функцию расстояния хи-квадрата. Функция расстояния должна:
Возьмите в качестве входных параметров n-by-p матрицу входных данных X
, одна строка X
(например, x
), и масштабирование (или вес) параметр w
.
Вычислите расстояние от x
к каждой строке X
.
Возвратите вектор из длины n. Каждым элементом вектора является расстояние между наблюдением, соответствующим x
и наблюдения, соответствующие каждой строке X
.
w = [0.4; 0.6]; % Set arbitrary weights for illustration
chiSqrDist = @(x,Z,w)sqrt((bsxfun(@minus,x,Z).^2)*w);
Найдите значения контура из кластеризованных данных с помощью пользовательской метрики расстояния chiSqrDist
.
s1 = silhouette(X,clust,chiSqrDist,w)
s1 = 20×1
0.6288
0.7239
0.6244
0.7696
0.7957
0.6688
0.7386
0.7865
0.7223
0.7572
⋮
Установите вес для обеих размерностей к 1 использовать chiSqrDist
как Евклидова метрика расстояния. Найдите значения контура и проверьте, что они совпадают со значениями в s
.
w2 = [1; 1]; s2 = silhouette(X,clust,chiSqrDist,w2); AreValuesEqual = isequal(s2,s)
AreValuesEqual = logical
1
Значения контура являются тем же самым в s
и s2
.
X
— Входные данныеВходные данные в виде числовой матрицы размера n-by-p. Строки соответствуют точкам, и столбцы соответствуют координатам.
Типы данных: single
| double
clust
— Кластерное присвоениеКластерное присвоение в виде категориального переменного, числового вектора, символьной матрицы, массива строк или массива ячеек из символьных векторов, содержащего кластерное имя для каждой точки в X
.
silhouette
обработки NaN
s и пустые значения в clust
как отсутствующие значения и игнорирует соответствующие строки X
.
Типы данных: single
| double
| char
| string
| cell
| categorical
Distance
— Метрика расстояния'sqEuclidean'
(значение по умолчанию) | 'Euclidean'
| 'cityblock'
| указатель на функцию | вектор из попарных расстояний |...Метрика расстояния в виде вектора символов, строкового скаляра или указателя на функцию, как описано в этой таблице.
Метрика | Описание |
---|---|
'Euclidean' | Евклидово расстояние |
'sqEuclidean' | Придал Евклидову расстоянию квадратную форму (значение по умолчанию) |
'cityblock' | Сумма абсолютных разностей |
'cosine' | Один минус косинус включенного угла между точками (обработанный как векторы) |
'correlation' | Один минус корреляция выборки между точками (обработанный как последовательности значений) |
'Hamming' | Процент координат, которые отличаются |
'Jaccard' | Процент ненулевых координат, которые отличаются |
Вектор | Числовой вектор-строка из попарных расстояний, в форме, созданной pdist функция. X не используется в этом случае и может безопасно быть установлен в [] . |
@ | Пользовательский указатель на функцию расстояния. Функция расстояния имеет форму function D = distfun(X0,X,
|
Для получения дополнительной информации смотрите Метрики Расстояния.
Пример: 'cosine'
Типы данных: char |
string
| function_handle
| single
| double
DistParameter
— Метрическое значение параметров расстоянияМетрическое значение параметров расстояния в виде положительной скалярной величины, числового вектора или числовой матрицы. Этот аргумент допустим только, когда вы задаете пользовательский указатель на функцию расстояния @
это принимает одно или несколько значений параметров в дополнение к входным параметрам distfun
X0
и X
.
Пример:
silhouette(X,clust,distfun,p1,p2)
где p1
и p2
дополнительные метрические значения параметров расстояния для @
distfun
Типы данных: single
| double
s
— Значения контура1
вектор из значений в пределах от –1
к 1
Значения контура, возвращенные как n-by-1
вектор из значений в пределах от –1
к 1
. Значение контура измеряется, насколько подобный точка к точкам в ее собственном кластере, когда по сравнению с точками в других кластерах. Значения лежат в диапазоне от –1
к 1
. Высокое значение контура указывает, что точка является хорошо соответствующей к ее собственному кластеру, и плохо соответствующей к другим кластерам.
Типы данных: single
| double
h
— Изобразите указательУказатель Figure, возвращенный как скаляр. Можно использовать указатель фигуры, чтобы запросить и изменить свойства фигуры. Для получения дополнительной информации смотрите Figure Properties.
Значение контура для каждой точки является мерой того, как подобный, что точка к точкам в ее собственном кластере, когда по сравнению с точками в других кластерах.
Значение контура Si
для i
точка th задана как
Si = (bi-ai)/ max(ai,bi)
где ai
среднее расстояние от i
th указывают на другие точки в том же кластере как i
, и bi
минимальное среднее расстояние от i
th указывают на точки в различном кластере, минимизированном по кластерам.
Диапазоны значений контура от –1
к 1
. Высокое значение контура указывает на тот i
является хорошо соответствующим к его собственному кластеру, и плохо соответствующим к другим кластерам. Если большинство точек имеет высокое значение контура, то решение по кластеризации является соответствующим. Если много точек имеют низкое или отрицательное значение контура, то решение по кластеризации может иметь слишком многих или слишком мало кластеров. Можно использовать значения контура в качестве кластеризирующегося критерия оценки с любой метрикой расстояния.
[1] Кауфман Л. и П. Дж. Руссиув. Нахождение групп в данных: введение в кластерный анализ. Хобокен, NJ: John Wiley & Sons, Inc., 1990.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.