距離行列mdist
(187x187 アイテム) があります。各アイテムの最小値に基づいてクラスターが必要です。私はそれらの最小限を数えました:
mins = list()
for (i in (1:nrow(mdist))) {
md = min(mdist[i,-c(i)])
mins <- rbind.data.frame(mins, list(id=i, dist=md))
}
全体の最大値を確認すると、max(mins$dist)
4 です。
ここで、これらのアイテムのグループをクラスターで取得することを期待しています。しきい値を 5 に設定すると、1 つのクラスターが得られると予想されます。
hc <- hclust(as.dist(mdist), method="complete")
x <- cutree(hc, h=5)
しかし、適用するlength(unique(x))
と103個のクラスターが必要です。
私は間違った方法をしていると思いますか?そのようなマトリックスの最大値を下回るクラスター数を強制する方法は?