dendrogram

График Дендрограмма

Описание

пример

dendrogram(tree) генерирует график дендрограммы иерархического двоичного дерева кластера. Дендрограмма состоит из многих U линий, которые соединяют точки данных в иерархическом дереве. Высота каждого U представляет расстояние между двумя соединяемыми точками данных.

  • Если в исходном наборе данных 30 или меньше точек данных, то каждый лист в дендрограмме соответствует одной точке данных.

  • Если точек данных больше 30, то dendrogram сворачивает нижние ветви так, чтобы было 30 листовых узлов. В результате некоторые листья на графике соответствуют более чем одной точке данных.

пример

dendrogram(tree,Name,Value) использует дополнительные опции, заданные одним или несколькими аргументами пары "имя-значение".

пример

dendrogram(tree,P) генерирует график дендрограммы не более P узлы листьев. Если их больше P точки данных в исходном наборе данных, затем dendrogram сворачивает нижние ветви дерева. В результате некоторые листья на графике соответствуют более чем одной точке данных.

dendrogram(tree,P,Name,Value) использует дополнительные опции, заданные одним или несколькими аргументами пары "имя-значение".

пример

H = dendrogram(___) генерирует график дендрограммы и возвращает вектор указателей на линии. Можно использовать любой из входных параметров из предыдущих синтаксисов.

пример

[H,T,outperm] = dendrogram(___) также возвращает вектор, содержащий номер конечного узла для каждого объекта в исходном наборе данных, T, и вектор, задающий порядок меток узлов листьев, как показано на дендрограмме outperm.

  • Полезно возвращаться T когда количество листовых узлов, P, меньше, чем общее количество точек данных, так что некоторые листовые узлы на отображении соответствуют нескольким точкам данных.

  • Порядок меток узлов, приведенный в outperm - слева направо для горизонтальной дендрограммы и снизу вверх для вертикальной дендрограммы.

Примеры

свернуть все

Сгенерируйте выборочные данные.

rng('default') % For reproducibility
X = rand(10,3);

Создайте иерархическое двоичное дерево кластера с помощью linkage. Затем постройте график дендрограммы с помощью опций по умолчанию.

tree = linkage(X,'average');

figure()
dendrogram(tree)

Figure contains an axes. The axes contains 9 objects of type line.

Сгенерируйте выборочные данные.

rng('default') % For reproducibility
X = rand(10,3);

Создайте иерархическое двоичное дерево кластера с помощью linkage.

tree = linkage(X,'average');

D = pdist(X);
leafOrder = optimalleaforder(tree,D)
leafOrder = 1×10

     3     7     6     1     4     9     5     8    10     2

Постройте график дендрограммы с помощью оптимального порядка листьев.

figure()
dendrogram(tree,'Reorder',leafOrder)

Figure contains an axes. The axes contains 9 objects of type line.

Порядок листовых узлов на графике дендрограммы соответствует - слева направо - сочетание в leafOrder.

Сгенерируйте выборочные данные.

rng('default') % For reproducibility
X = rand(100,2);

В исходном наборе данных 100 точек данных, X.

Создайте иерархическое двоичное дерево кластера с помощью linkage. Затем постройте график дендрограммы для полного дерева (100 листовых узлов) путем установки входного параметра P равно 0.

tree = linkage(X,'average');
dendrogram(tree,0)

Figure contains an axes. The axes contains 99 objects of type line.

Теперь постройте график дендрограммы всего с 25 узлами листа. Верните отображение исходных точек данных к узлам листа, показанным на графике.

figure
[~,T] = dendrogram(tree,25);

Figure contains an axes. The axes contains 24 objects of type line.

Список исходных точек данных, которые находятся в листовом узле 7 графика дендрограммы.

find(T==7)
ans = 7×1

     7
    33
    60
    70
    74
    76
    86

Сгенерируйте выборочные данные.

rng('default') % For reproducibility
X = rand(10,3);

Создайте иерархическое двоичное дерево кластера с помощью linkage. Затем постройте график дендрограммы с вертикальной ориентацией, используя порог цвета по умолчанию. Возврат указателей к линиям позволяет изменять ширины линии дендрограммы.

tree = linkage(X,'average');
H = dendrogram(tree,'Orientation','left','ColorThreshold','default');
set(H,'LineWidth',2)

Figure contains an axes. The axes contains 9 objects of type line.

Входные параметры

свернуть все

Иерархическое двоичное дерево кластера, заданное как (M - 1) -by-3 матрица, которую вы генерируете используяlinkage, где M количество точек данных в исходном наборе данных.

Максимальное количество листовых узлов для включения в график дендрограммы в виде положительного целого значения.

  • Если есть P или меньше точек данных в исходном наборе данных, тогда каждый лист в дендрограмме соответствует одной точке данных.

  • Если их больше P точки данных, затем dendrogram сворачивает нижние ветви так, чтобы были P узлы листьев. В результате некоторые листья на графике соответствуют более чем одной точке данных.

    Если вы не задаете P, затем dendrogram использует 30 как максимальное количество листовых узлов. Чтобы отобразить полное дерево, задайте P равно 0.

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

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'Orientation','left','Reorder',myOrder задает вертикальную дендрограмму с листьями в порядке, заданном myOrder.

Порядок листовых узлов на графике дендрограммы, заданный как разделенная разделенными запятой парами, состоящая из 'Reorder' и вектор, задающий порядок узлов в полном дереве. Вектор порядка должен быть сочетанием вектора 1:M, где M количество точек данных в исходном наборе данных. Задайте порядок слева направо для горизонтальных дендрограмм и снизу вверх для вертикальных дендрограмм.

Если M больше, чем количество листовых узлов на графике дендрограммы, P (по умолчанию P является 30), тогда можно задать только вектор сочетания, который не разделяет группы листьев, которые соответствуют свернутым узлам.

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

Индикатор того, проверять ли пересечение ветвей на графике дендрограммы, задается как разделенная разделенными запятой парами, состоящая из 'CheckCrossing' и любой из них true или false. Эта опция используется только, когда вы задаете значение для Reorder.

Когда CheckCrossing имеет значение true, dendrogram выдает предупреждение, если порядок узлов листа вызывает пересечение ветвей на графике. Если график дендрограммы не показывает полное дерево (потому что количество точек данных в исходном наборе данных больше P), dendrogram выдает предупреждение только, когда порядок листовых узлов заставляет ветвь пересечь в дендрограмме, как показано на графике. То есть, нет предупреждения, если порядок вызывает пересечение ветвей в полном дереве, но не в дендрограмме, как показано на графике.

Типы данных: logical

Порог для уникальных цветов на графике дендрограммы, заданное как разделенная разделенными запятой парами, состоящая из 'ColorThreshold' и любой из них 'default' или скалярное значение в области значений (0,max(tree(:,3))). Если ColorThreshold имеет значение T, тогда dendrogram присваивает уникальный цвет каждой группе узлов в дендрограмме, редактирование меньше T.

  • Если ColorThreshold имеет значение 'default', тогда порог, T, составляет 70% от максимального редактирования, 0.7*max(tree(:,3)).

  • Если вы не задаете значение для ColorThreshold, или если вы задаете порог вне области значений (0,max(tree(:,3))), затем dendrogram использует только один цвет для графика дендрограммы.

Ориентация дендрограммы в окне рисунка, заданная как разделенная разделенными запятой парами, состоящая из 'Orientation' и одно из следующих значений:

'top'Сверху вниз
'bottom'Снизу вверх
'left'Слева направо
'right'Справа налево

Метка для каждой точки данных в исходном наборе данных, заданная как разделенная разделенными запятой парами, состоящая из 'Labels' и символьный массив, строковые массивы или массив ячеек из векторов символов. dendrogram помечает все листья на графике дендрограммы, содержащие одну точку данных с меткой этой точки данных.

Выходные аргументы

свернуть все

Указатели на линии на графике дендрограммы, возвращенные как вектор.

Номера конечных узлов для каждой точки данных в исходном наборе данных, возвращенные как вектор-столбец M длины, где M количество точек данных в исходном наборе данных.

Когда их меньше P точки данных в исходных данных (P 30, по умолчанию), все точки данных отображаются в дендрограмме, причем каждый узел содержит одну точку данных. В этом случае T являются тождества картой, T = (1:M)'.

T полезно, когда P меньше, чем общее количество точек данных. То есть, когда некоторые листовые узлы в отображении дендрограммы соответствуют нескольким точкам данных. Например, чтобы выяснить, какие точки данных содержатся в листовом узле k графика дендрограммы используйте find(T==k).

Сочетания метки узлов листьев дендрограммы, как показано на графике, возвращаются как вектор-строка. outperm дает порядок слева направо для горизонтальной дендрограммы, а снизу вверх для вертикальной дендрограммы. Если есть P листья на графике дендрограммы, outperm является сочетанием вектора 1:P.

Представлено до R2006a