Создайте агломерационные кластеры из данных
T = clusterdata(X,cutoff)
T = clusterdata(X,Name,Value)
возвращает кластерные индексы для каждого наблюдения (строка) матрицы входных данных T
= clusterdata(X
,cutoff
)X
, учитывая порог cutoff
для сокращения агломерационного иерархического дерева, которое функция linkage
генерирует от X
.
clusterdata
поддерживает агломерационную кластеризацию и включает pdist
, linkage
и функции cluster
, которые можно использовать отдельно для более детального анализа. Дополнительную информацию см. в Описании Алгоритма.
задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение". Например, можно задать T
= clusterdata(X
,Name,Value
)'Maxclust',5
, чтобы найти максимум пяти кластеров.
Если 'Linkage'
является 'centroid'
или 'median'
, то linkage
может произвести кластерное дерево, которое не является монотонным. Этот результат происходит, когда расстояние от объединения двух кластеров, r и s, к третьему кластеру является меньше, чем расстояние между r и s. В этом случае, в древовидной схеме, чертившей с ориентацией по умолчанию, путь от листа до корневого узла делает некоторые нисходящие шаги. Чтобы избежать этого результата, задайте другое значение для 'Linkage'
. Следующее изображение показывает немонотонное кластерное дерево.
В этом случае к кластеру 1 и кластеру 3 соединяют в новый кластер, в то время как расстояние между этим новым кластером и кластером 2 является меньше, чем расстояние между кластером 1 и кластером 3.
Если вы задаете значение c
для входного параметра cutoff
, то
выполняет следующие шаги:T = clusterdata(X,c)
Создайте вектор Евклидова расстояния между парами наблюдений в X
при помощи pdist
.
Y = pdist(X,'euclidean')
Создайте агломерационное иерархическое кластерное дерево из Y
при помощи linkage
с методом 'single'
для вычисления кратчайшего расстояния между кластерами.
Z = linkage(Y,'single')
Если 0 <
c
< 2
, используйте cluster
, чтобы задать кластеры от Z
, когда противоречивые значения будут меньше, чем c
.
T = cluster(Z,'Cutoff',c)
Если c
является целочисленным значением ≥ 2
, используйте cluster
, чтобы найти максимум кластеров c
от Z
.
T = cluster(Z,'MaxClust',c)
Если у вас есть иерархический кластерный древовидный Z
(вывод функции linkage
для матрицы входных данных X
), можно использовать cluster
, чтобы выполнить агломерационную кластеризацию на Z
и возвратить кластерное присвоение для каждого наблюдения (строка) в X
.
cluster
| dendrogram
| inconsistent
| kmeans
| linkage
| pdist