2

在 R 中,您可以在聚类之前使用各种度量来构建距离矩阵,例如二进制距离、曼哈顿距离等……但是,在选择链接方法时(完整、平均、单一等…… ),这些链接都使用欧几里得距离。如果您依赖差异度量来构建距离矩阵,这似乎并不特别合适。

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

谢谢!

4

3 回答 3

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")
于 2012-08-30T13:39:15.747 回答
1

如果您已经构建了一个已经表示成对距离的矩阵,请使用例如

hclust(as.dist(mx), method="single")
于 2012-09-03T11:16:37.173 回答
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

我自己使用 Daniel Müllner 教授的fastcluster 库agnes,它具有与大型数据集完全相同的 API,但速度要快几个数量级。

于 2012-08-30T13:50:18.090 回答