首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hclust函数聚类列表

hclust函数聚类列表
EN

Stack Overflow用户
提问于 2011-06-29 17:05:25
回答 2查看 37.9K关注 0票数 29

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

换句话说,如果a b c是一个集群,如果d e f g是一个集群,那么我希望得到这样的东西:

代码语言:javascript
复制
1 a,b,c
2 d,e,f,g

请注意,这并不是我想要的“输出”。这只是一个例子。我只是希望能够得到一个簇的列表,而不是树形图,它可以是矢量,矩阵,或者只是简单的数字,显示元素属于哪些组。

这怎麽可能?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-29 17:36:05

我将使用R中提供的数据集来演示如何将树分割成所需数量的部分。结果是一个表。

构造一个hclust对象。

代码语言:javascript
复制
hc <- hclust(dist(USArrests), "ave")
#plot(hc)

现在,您可以将树切割成所需的任意多个分支。在我的下一个技巧中,我将把树分成两组。可以使用k参数设置切割的数量。请参阅?cutree和参数h的使用,这可能对您更有用(请参阅cutree(hc, k = 2) == cutree(hc, h = 110))。

代码语言:javascript
复制
cutree(hc, k = 2)
       Alabama         Alaska        Arizona       Arkansas     California 
             1              1              1              2              1 
      Colorado    Connecticut       Delaware        Florida        Georgia 
             2              2              1              1              2 
        Hawaii          Idaho       Illinois        Indiana           Iowa 
             2              2              1              2              2 
        Kansas       Kentucky      Louisiana          Maine       Maryland 
             2              2              1              2              1 
 Massachusetts       Michigan      Minnesota    Mississippi       Missouri 
             2              1              2              1              2 
       Montana       Nebraska         Nevada  New Hampshire     New Jersey 
             2              2              1              2              2 
    New Mexico       New York North Carolina   North Dakota           Ohio 
             1              1              1              2              2 
      Oklahoma         Oregon   Pennsylvania   Rhode Island South Carolina 
             2              2              2              2              1 
  South Dakota      Tennessee          Texas           Utah        Vermont 
             2              2              2              2              2 
      Virginia     Washington  West Virginia      Wisconsin        Wyoming 
             2              2              2              2              2
票数 47
EN

Stack Overflow用户

发布于 2013-09-16 19:21:54

比方说

代码语言:javascript
复制
y<-dist(x)
clust<-hclust(y)
groups<-cutree(clust, k=3)
x<-cbind(x,groups)

现在,您将获得每条记录的群集组。您还可以对数据集进行子集设置:

代码语言:javascript
复制
x1<- subset(x, groups==1)
x2<- subset(x, groups==2)
x3<- subset(x, groups==3)
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6518133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档