optimalleaforder

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

Описание

пример

leafOrder = optimalleaforder(tree,D) возвращает оптимальное упорядоченное расположение листов для иерархического двоичного дерева кластеров, tree, используя расстояния, D. Оптимальное упорядоченное расположение листьев двоичного дерева максимизирует сумму сходств между соседними листьями, переворачивая ветви дерева без деления кластеров.

leafOrder = optimalleaforder(tree,D,Name,Value) возвращает оптимальное упорядоченное расположение листов, используя один или несколько аргументы пары "имя-значение".

Примеры

свернуть все

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

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

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

Создайте вектор расстояния и иерархическое двоичное дерево кластеризации. Используйте дерево расстояний и кластеризации, чтобы определить оптимальный порядок листов.

D = pdist(X);
tree = linkage(D,'average');
leafOrder = optimalleaforder(tree,D);

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

figure()
subplot(2,1,1)
dendrogram(tree)
title('Default Leaf Order')

subplot(2,1,2)
dendrogram(tree,'reorder',leafOrder)
title('Optimal Leaf Order')

Figure contains 2 axes. Axes 1 with title Default Leaf Order contains 9 objects of type line. Axes 2 with title Optimal Leaf Order contains 9 objects of type line.

Порядок листьев на нижнем рисунке соответствует элементам в leafOrder.

leafOrder
leafOrder = 1×10

     1     4     9    10     2     5     8     3     7     6

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

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

Создайте вектор расстояния и иерархическое двоичное дерево кластеризации.

D = pdist(X);
tree = linkage(D,'average');

Используйте преобразование подобия обратного расстояния, чтобы определить оптимальный порядок листьев.

leafOrder = optimalleaforder(tree,D,'Transformation','inverse')
leafOrder = 1×10

     1     4     9    10     2     5     8     3     7     6

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

свернуть все

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

Расстояния для определения сходства между листьями, заданные как матрица или вектор расстояний. Для примера можно сгенерировать расстояния с помощью pdist.

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

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

Пример: 'Criteria','group','Transformation','inverse' задает, что сумма подобий должна быть максимизирована между каждым листом и всеми другими листьями в смежных кластерах, с помощью обратного преобразования подобия.

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

'adjacent'Максимизируйте сумму сходства между соседними листьями.
'group'Максимизируйте сумму сходства между каждым листом и всеми остальными листьями в соседних кластерах на том же уровне дендрограммы.

Пример: 'Criteria','group'

Метод преобразования расстояний к подобиям, заданный как разделенная запятыми пара, состоящая из 'Transformation' и один из 'linear', 'inverse', или указатель на функцию.

Позвольте di,j и Simi,j обозначить расстояние и сходство между листьями i и j, соответственно. Включенными преобразованиями подобия являются:

'linear'Simi,j = max i,j (di,j ) - di,j
'inverse'<reservedrangesplaceholder2> <reservedrangesplaceholder1> = 1 / di,j

Чтобы использовать пользовательскую функцию преобразования, задайте указатель на функцию, которая принимает матрицу расстояний, D, и возвращает матрицу сходств, S. Функция должна быть монотонной, уменьшающейся в области значений значений расстояния. S должен иметь тот же размер, что и D, с S(i,j) будучи подобием, вычисленным на основе D(i,j).

Пример: 'Transformation',@myTransform

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

свернуть все

Оптимальный порядок листьев, возвращаемый как вектор с M длиной, где M - количество листьев. leafOrder является сочетанием вектора 1:M, что дает оптимальное упорядоченное расположение листов, основанное на заданных расстояниях и преобразовании подобия.

Ссылки

[1] Bar-Joseph, Z., Gifford, D.K., and Jaakkola, T.S. (2001). «Быстрое оптимальное упорядоченное расположение листьев для иерархической кластеризации». Биоинформатика Vol. 17, Suppl 1:S22-9. PMID: 11472989.

См. также

| |

Введенный в R2012b