カスタムのシミュレートされた類似性マトリックスに単純なクラスタリング手順を適用しています。( https://github.com/ehouddt/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
hclust
予想どおり、との順序が異なるため、デンドログラムは異なって見えますagnes
。ただし、ラベルを (k=20
たとえば で) カットすると、観測の結果が異なります (似ていますが)。(たとえば、ラベルの数量が 2 つの結果で異なることがわかります)
私はばかげた間違いを犯していますか、それとも木を切った後にまったく同じ結果を返すはずがhclust
ありませんか? agnes
2 つのプロシージャが同じ結果を返すはずがない場合、2 つの関数の違いはどこにありますか?