문제

나는 두 개의 덴드로 그램이 있으며 그들이 "유사한"것이 얼마나 "유사한 지"를 찾기 위해 서로 비교하고 싶은 두 개의 덴드로 그램이 있습니다. 그러나 나는 그렇게 할 방법을 모른다 (R에서이를 구현하기위한 코드는 물론).

리드가 있습니까?

업데이트 (2014-09-13):

이 질문을 한 이후로 나는 R 패키지를 작성했습니다. Dendextend, 시각화, 조작 및 비교 덴드로 그램. 이 패키지가 켜져 있습니다 크랜 그리고 함께 제공됩니다 상세한 비네팅. 여기에는 다음과 같은 기능이 포함됩니다 cor_cophenetic, cor_bakers_gamma 그리고 Bk / Bk_plot. 뿐만 아니라 tanglegram 두 나무를 시각적으로 비교할 수있는 기능.

도움이 되었습니까?

해결책

덴드로 그램을 비교하는 것은 계층 적 클러스터링을 비교하는 것과 똑같지 않습니다. 전자는 분사기의 길이와 스플릿의 길이를 포함하기 때문에 좋은 시작이라고 생각합니다. EB Fowlkes & CL Mallows (1983)를 읽는 것이 좋습니다. "두 계층 적 클러스터링을 비교하는 방법". 미국 통계 협회 저널 78 (383) : 553–584 (링크).

그들의 접근 방식은 각 수준에서 나무를 자르는 것을 기반으로합니다. 케이, 측정 값을 얻습니다 BK 그것은 그룹을 비교합니다 케이 클러스터, 다음을 검사합니다 BK vs 케이 음모. 측정 BK 객체 쌍을보고 동일한 클러스터에 속하는지 아닌지를 보는 데 기반을두고 있습니다.

이 방법을 기반으로 코드를 쓸 수 있다고 확신하지만 먼저 덴드로 그램이 R에 어떻게 표시되는지 알아야합니다.

다른 팁

아시다시피, 덴드로 그램 계층 적 클러스터링에서 발생합니다. 따라서 실제로 묻는 것은 두 계층 적 클러스터링 실행 결과를 어떻게 비교할 수 있습니까? 내가 알고있는 표준 메트릭은 없지만, 발견 된 클러스터의 수를보고 클러스터 사이의 멤버십 유사성을 비교할 것입니다. 여기 내 동료가 스카치 위스키 클러스터링에 대해 쓴 계층 적 클러스터링에 대한 좋은 개요입니다.

살펴보십시오 이 페이지:

나는 또한 비슷한 질문이 있습니다 여기

우리는 두 덴드로 그램 사이의 유사성을 측정하기 위해 코 페닉 상관 관계를 사용할 수 있습니다. 그러나 현재 R에서는이 목적에 대한 기능이없는 것 같습니다.

2014,9,18로 편집 :그만큼 cophenetic 기능 stats 패키지는 코 페니 틱 비 유사성 매트릭스를 계산할 수 있습니다. 상관 관계는 사용하여 계산할 수 있습니다 cor 기능. @tal이 지적했듯이 as.dendrogram 함수는 순서가 다른 트리를 반환하여 덴드로 그램 결과를 기반으로 상관 관계를 계산하면 잘못된 결과를 초래할 수 있습니다. 함수의 예에서 보여준 바와 같이 cor_cophenetic 기능 dendextend 패키지:

set.seed(23235)
ss <- sample(1:150, 10 )
hc1 <- iris[ss,-5] %>% dist %>% hclust("com")
hc2 <- iris[ss,-5] %>% dist %>% hclust("single")
dend1 <- as.dendrogram(hc1)
dend2 <- as.dendrogram(hc2)
# cutree(dend1)
cophenetic(hc1)
cophenetic(hc2)
# notice how the dist matrix for the dendrograms have different orders:
cophenetic(dend1)
cophenetic(dend2)
cor(cophenetic(hc1), cophenetic(hc2)) # 0.874
cor(cophenetic(dend1), cophenetic(dend2)) # 0.16
# the difference is becasue the order of the distance table in the case of
# stats:::cophenetic.dendrogram will change between dendrograms!

각 덴드로 그램을 생성 한 기본 거리 매트릭스에 액세스 할 수있는 경우 (렌도 그램을 R에서 생성 한 경우) 두 행렬의 해당 값간에 상관 관계를 사용할 수 없습니까? 나는 이것이 당신이 요청한 것에 대한 편지를 다루지 않는다는 것을 알고 있지만, 그것은 당신이 요청한 것에 대한 좋은 해결책입니다.

보세요 이것 덴드로 그램을 포함하여 나무를 다루는 소프트웨어에 대한 정보가 많이있는 페이지. 아직 개인적으로 사용하지는 않았지만 나무 비교를 다루는 몇 가지 도구를 발견했습니다. 거기에도 인용 된 많은 참고 문헌이 있습니다.

계통 발생학 공동체에는 컴퓨터 과학 관점에서 무시 된 것으로 보이는 나무 거리 지표에 대한 풍부한 문헌이 있습니다. 보다 dist.topoape 두 개의 트리 거리 메트릭과 몇 가지 인용에 대한 패키지 (Penny and Hardy 1985, Kuhner and Felsenstein 1994)는 나무 파티션의 유사성을 고려하고 Robinson-Foulds Metric 여기에는 r 구현이 있습니다 phangorn 패키지.

한 가지 문제는 이러한 메트릭이 고정 된 척도가 없으므로 1) 트리 비교 또는 2) 일부 생성 된 기준선과의 비교에서만 유용하다는 것입니다. Tal이 Baker 's Gamma에서 수행 한 것과 유사한 순열 테스트 그의 환상적인 Dendextend 패키지에서.

HClust 또는 덴드로 그램 객체가 생성 된 경우 R 사용 사용, 계층 적 클러스터링 as.phylo ~로부터 ape 패키지는 덴드로 그램을 계통 발생 나무로 변환하여 이러한 기능에서 사용합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top