使用不同的度量标准进行hclust链接?

时间:2012-08-30 13:33:42

标签: r cluster-analysis

在R中,您可以使用各种指标在聚类之前构建距离矩阵,例如二进制距离,曼哈顿距离等... 但是,当选择连接方法(完整,平均,单等等)时,这些连接都使用欧几里德距离。如果依靠差异度量来构建距离矩阵,这似乎不太合适。

在构建聚类树时,是否有方法(或库...)将其他距离应用于链接方法?

谢谢!

3 个答案:

答案 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,但对于大型数据集来说却快了几个数量级。