在R中,您可以使用各种指标在聚类之前构建距离矩阵,例如二进制距离,曼哈顿距离等... 但是,当选择连接方法(完整,平均,单等等)时,这些连接都使用欧几里德距离。如果依靠差异度量来构建距离矩阵,这似乎不太合适。
在构建聚类树时,是否有方法(或库...)将其他距离应用于链接方法?
谢谢!
答案 0 :(得分:1)
我真的不明白你的问题。例如,假设我有以下数据:
x <- matrix(rnorm(100), nrow=5)
然后我可以使用dist
##Changing the distance measure
d_e = dist(x, method="euclidean")
d_m = dist(x, method="maximum")
然后我可以聚集在我想要的地方:
##Changing the clustering method
hclust(d_m, method="median")
答案 1 :(得分:1)
如果您构建了一个已经表示成对距离的矩阵,请使用例如
hclust(as.dist(mx), method="single")
答案 2 :(得分:0)
您可能想尝试使用agnes
而不是hclust
,并将其交给距离矩阵。这里有一个很好的教程:
http://strata.uga.edu/software/pdf/clusterTutorial.pdf
在本教程中,您将如何生成和使用距离矩阵进行聚类:
> library(vegan)
# load library for distance functions
> mydata.bray <- vegdist(mydata, method="bray")
# calculates bray (=Sørenson) distances among samples
> mydata.bray.agnes <- agnes(mydata.bray)
# run the cluster analysis
我自己使用的是DanielMüllner教授的fastcluster library,它与agnes
具有完全相同的API,但对于大型数据集来说却快了几个数量级。