Как можно сравнивать "похожесть" между двух дендрограмм (в р)?
какие-то зацепки ?
обновление (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
пакет преобразует ваши дендрограммы в филогенетические деревья для использования в этих функциях.