exponenta event banner

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'или дескриптор функции.

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

'linear'Сими, j = макси, j (ди, j) - ди, j
'inverse'Сими, j = 1/ди, j

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

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

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

свернуть все

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

Ссылки

[1] Бар-Джозеф, З., Гиффорд, Д. К., и Яаккола, Т.С. (2001). «Быстрое оптимальное упорядочение листьев для иерархической кластеризации». Биоинформатика Том 17, Suppl 1:S22-9. PMID: 11472989.

См. также

| |

Представлен в R2012b