R hclust函数的聚类列表

R hclust函数的聚类列表,r,hclust,R,Hclust,使用plot(hclust(dist(x)))方法,我能够绘制一个聚类树图。它起作用了。然而,我希望得到所有集群的列表,而不是树形图,因为我有大量的数据(比如150K个节点),并且绘图变得混乱 换句话说,假设abc是一个簇,如果defg是一个簇,那么我想得到如下结果: 1 a,b,c 2 d,e,f,g 请注意,这并不是我想要的“输出”。这只是一个例子。我只是希望能够得到一个集群列表,而不是一个树形图,它可以是向量、矩阵或只是简单的数字,显示元素所属的组 这是怎么可能的?我将使用R中可用的数据

使用
plot(hclust(dist(x)))
方法,我能够绘制一个聚类树图。它起作用了。然而,我希望得到所有集群的列表,而不是树形图,因为我有大量的数据(比如150K个节点),并且绘图变得混乱

换句话说,假设
abc
是一个簇,如果
defg
是一个簇,那么我想得到如下结果:

1 a,b,c
2 d,e,f,g
请注意,这并不是我想要的“输出”。这只是一个例子。我只是希望能够得到一个集群列表,而不是一个树形图,它可以是向量、矩阵或只是简单的数字,显示元素所属的组


这是怎么可能的?

我将使用R中可用的数据集演示如何将一棵树切割成所需数量的片段。结果是一个表格

构造一个hclust对象

hc <- hclust(dist(USArrests), "ave")
#plot(hc)
比方说

y<-dist(x)
clust<-hclust(y)
groups<-cutree(clust, k=3)
x<-cbind(x,groups)

太棒了!非常感谢。这使我想到,如何可能近似参数“k”的一个好值,从而使数据中的集群数量是它应该是什么,而不是我希望它是什么?换句话说,如果我不知道数据中有多少个簇,所以我不知道需要进行多少次切割,该怎么办。这确实是我试图找到的,也就是说集群的数量和每个集群中的元素。对不起,如果我之前不清楚的话。@dave,你能知道你想把树砍到什么高度吗?如果是,请使用参数
h
(请参阅
?cutree
)。该函数将返回适当数量的组(以及叶的忠诚)。我知道,也许这就是我能做的,hclust对象具有诸如合并矩阵、高度等组件。假设a是hclust对象,我们可以使用$height访问可能的高度。因此,可以从该矩阵中选择最大高度,我可能会找出可能的集群数量。这就是我通过阅读所能找到的。这可能会有所帮助。
y<-dist(x)
clust<-hclust(y)
groups<-cutree(clust, k=3)
x<-cbind(x,groups)
x1<- subset(x, groups==1)
x2<- subset(x, groups==2)
x3<- subset(x, groups==3)