2012-07-15 80 views
2

我有关于聚类分析(分层聚类)的问题。例如,这是虹膜数据集完全链接的树状图。如何了解群集分析(分层)中的群组信息?

enter image description here

后,我用

> table(cutree(hc, 3), iris$Species) 

这是输出

setosa versicolor virginica 
1  50   0   0 
2  0   23  49 
3  0   27   1 

我已经在一个统计网站阅读,在数据对象1总是属于group/cluster 1.从上面的输出中,我们知道se土佐是在组1。那么,我将如何了解其他两个物种。它们如何落入第2组或第3组中。它是如何发生的。也许有一个我需要知道的计算?

回答

3

我猜你正在使用它来创建那个目前看起来不存在的图像。

> lmbjck <- cutree(hclust(dist(iris[1:4], "euclidean")), 3) 
> table(lmbjck, iris$Species) 

lmbjck setosa versicolor virginica 
    1  50   0   0 
    2  0   23  49 
    3  0   27   1 

Dist是通过对具有相同列名和列名的三种不同物种的植物进行测量而创建的。

> iris.dist <- dist(iris[1:4], "euclidean") 
> identical(rownames(iris.dist), colnames(iris.dist)) 
[1] TRUE 

该对象被传递给hclust,它构造一棵树并将其切成三块。对象iris.order保存绘制树状图的顺序。原始顺序被保留,树根据这个顺序绘制。

> iris.hclust <- hclust(iris.dist) 
> iris.cutree <- cutree(iris.hclust, 3) 
> iris.order <- iris.hclust$order 

这是证据。我将原始Species名称,有序物种名称放在一起,因为它们可以在树状图,订单号和分组功能中看到。

> data.frame(original = iris$Species, ordered = iris$Species[iris.order], 
      order.num = iris.order, cutree = iris.cutree) 

     original ordered order.num cutree 
1  setosa virginica  108  1 
2  setosa virginica  131  1 
3  setosa virginica  103  1 
4  setosa virginica  126  1 
5  setosa virginica  130  1 
6  setosa virginica  119  1 
    ... 
103 virginica  setosa  31  2 
104 virginica  setosa  26  2 
105 virginica  setosa  10  2 
106 virginica  setosa  35  2 
107 virginica  setosa  13  3 
108 virginica  setosa   2  2 
    ... 

让我们来看看输出。如果你看第一行,在order.num下有108个数字。这意味着对于这个项目(树状图左侧的第一个项目)来自第108行。向下移动到第108行,你可以看到原始Species确实是virginica。 Cutree将此分配给组1。我们来看第3行。在order.num之下,你可以看到这个项目来自第103行。再次,如果你下来检查第103行的原始物种,它仍然是(仍然)virginica。我会为你做一个练习来检查其他(随机)行,并说服你自己保存在开始时构建表的顺序。因此,桌子应该是正确的。

+0

谢谢你的解释@罗曼·卢斯特里克。我会通过你回答。我将编辑图片。 – Annie 2012-07-16 06:30:29

+0

我试图编辑,但不知何故,图片没有显示。另一种查看图像的方法是,在地址栏中复制此链接> http://i.stack.imgur.com/78c1m.png。真的很抱歉给您带来不便。 – Annie 2012-07-16 06:40:55

+0

@安妮,你可能没有足够的权限呢。我编辑了你的问题。如果您觉得所提供的答案回答了您的问题,请随时通过点击答案分数下方的灰色复选标记来标记该答案。 – 2012-07-16 07:10:13