Как можно сравнивать "похожесть" между двух дендрограмм (в р)?

какие-то зацепки ?

обновление (2014-09-13):

задав этот вопрос, я написал пакет R под названием dendextend, для визуализации, манипуляции и сравнение из дендрограммы. Этот пакет на кран и поставляется с подробная виньетка. Он включает в себя такие функции, как cor_cophenetic, cor_bakers_gamma и Bk / Bk_plot. А также

6 ответов


сравнение дендрограмм не совсем то же самое, что сравнение иерархических кластеров, потому что первое включает в себя длины ветвей, а также расщепления, но я также думаю, что это хорошее начало. Я хотел бы предложить вам прочитать Е. Б. Fowlkes & С. Л. мальвы (1983). "Метод сравнения двух иерархических кластеров". Журнал Американской статистической Ассоциации 78 (383): 553-584 (ссылка).

их подход основан на вырубке деревьев на каждом уровне k, получает меры Bk это сравнивает группировки в k кластеры, а затем изучение Bk vs k участки. Мера Bk основан на взгляде на пары объектов и видя, попадают ли они в один и тот же кластер или нет.

Я уверен, что можно написать код на основе этого метода, но Сначала нам нужно знать, как дендрограммы представлены в R.


Как известно, дендрограммы возникают из иерархической кластеризации-так что вы действительно спрашиваете, как я могу сравнить результаты двух иерархических запусков кластеризации. Я не знаю стандартных показателей, но я бы посмотрел на количество найденных кластеров и сравнил сходство членства между подобными кластерами. здесь хороший обзор иерархической кластеризации, что мой коллега написал о кластеризации шотландского виски.


посмотреть на этой странице:

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

кажется, мы можем использовать cophenetic корреляции в качестве меры сходства между двумя дендрограммы. Но в настоящее время в R нет функции для этой цели.

редактировать в 2014,9,18: The . как @Tal указал as.dendrogram функция вернула дерево с другим порядком, что приведет к неправильным результатам, если мы рассчитаем корреляцию на основе результатов дендрограммы. Как показано в примере функции


Если у вас есть доступ к базовой матрице расстояний, которая генерировала каждую дендрограмму (вы, вероятно, делаете, если вы генерировали дендорограммы в R), не могли бы вы просто использовать корреляцию между соответствующими значениями двух матриц? Я знаю, что это не относится к букве того, о чем вы просили, но это хорошее решение для духа того, о чем вы просили.


посмотри этой страница, которая содержит много информации о программном обеспечении, которое имеет дело с деревьями, включая дендрограммы. Я заметил несколько инструментов, которые имеют дело с сравнением деревьев, хотя я еще не использовал ни один из них. Там также приводится ряд ссылок.


в филогенетическом сообществе существует богатый массив литературы по метрикам расстояния между деревьями, который, похоже, игнорируется с точки зрения компьютерных наук. См.dist.topo на ape пакет для двух метрик расстояния дерева и нескольких цитат (Penny and Hardy 1985, Kuhner and Felsenstein 1994), которые учитывают сходство разделов дерева, а также Robinson-Foulds metric, который имеет реализацию R в phangorn.

одна проблема заключается в том, что эти показатели не имеют фиксированного масштаба, поэтому они полезны только в случаях 1) сравнения дерева или 2) сравнения с некоторой сгенерированной базовой линией, возможно, через перестановочные тесты похожи на то, что Тал сделал с гаммой Бейкера в своем фантастическом пакете dendextend.

если у вас есть объекты hclust или dendrogram, созданные из R иерархическая кластеризация, используя as.phylo С ape пакет преобразует ваши дендрограммы в филогенетические деревья для использования в этих функциях.