2017-03-11 17 views
0

저는 간단한 시뮬레이션 절차를 맞춤 시뮬레이션 유사 매트릭스에 적용하고 있습니다. (참고 : 나는뿐만 아니라 완전한 링크에 대해 동일한 동작을 관찰)를 평균 링크를 사용할 때이 hclustagnes 절차 사이의 차이를 나타 납니까 그러나 (https://github.com/ewouddt/Files/blob/master/sim_col.RData)평균 링크를 사용하는`hclust '와`agnes'에 대한 결과가 다릅니다.

load("sim_col.RData") # A 606 x 606 similarity matrix 
library(cluster) 

c1 <- hclust(as.dist(1-sim_col),method="average") 
c2 <- as.hclust(agnes(as.dist(1-sim_col),diss=TRUE,method="average")) 

dev.new() 
plot(c1) 
dev.new() 
plot(c2) 

cut1 <- cutree(c1,k=20) 
cut2 <- cutree(c2,k=20) 
cut1 
cut2 

sort(table(cut1)) 
cut1 
# cut1 
# 10 18 9 19 3 20 4 11 7 15 17 5 6 12 16 2 8 1 13 14 
# 2 5 7 8 11 13 14 14 15 19 19 21 23 26 27 31 33 80 95 143 
sort(table(cut2)) 
# cut2 
# 18 20 19 11 17 7 8 4 12 5 9 3 10 16 2 6 14 13 1 15 
# 4 6 8 9 9 13 13 14 15 16 17 19 20 29 31 31 54 62 115 121 

예상대로 dendrograms는 hclustagnes의 순서가 다르기 때문에 다르게 보입니다. 그러나 레이블을 자르면 (예 : k=20) 관측 결과가 다르기는하지만 (유사한 경우에도) 결과가 표시됩니다. 나무를 절단 한 후 동일한 결과를 반환 안

내가 바보 같은 실수를하고 있습니까 (예를 들어, 당신은 라벨의 양이 두 결과 사이에 차이가 있음을 볼 수 있습니다) 또는 hclustagnes이다? 2 개의 프로 시저가 동일한 결과를 반환하지 않아야하는 경우 2 개의 함수의 차이가 있습니까?

답변

1

단일 링크를 제외하고는 클러스터링 결과가 고유하게 결정되지 않을 수 있습니다. 1, 2, 2, 3, 3, 단일 링크를 제외하고 4

을 병합, 우리가 얻을 것이다 :

1 2 3 4 

(가) 세 최소값은 다음과 같습니다

는 다음과 같은 데이터 세트를 고려 처음에 2와 3을 병합하는지 또는 다른 쌍 중 하나를 병합하는지에 따라 다른 결과가 나타납니다.

특히, 일반적인 알고리즘은 이 아니므로은 최적의 솔루션을 찾을 수 있습니다. 이를 보장하려면 NP 완료 가능성이 높습니다. 그러나 그것은 또한별로 중요하지 않을 수 있습니다.