如何了解集群分析(层次结构)中的组信息?

时间:2012-07-15 05:35:42

标签: r cluster-analysis hierarchical-clustering

我在群集分析(层次群集)中遇到群组的问题。例如,这是虹膜数据集的完整链接的树形图。

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总是属于组/集群1.从上面的输出中,我们知道 setosa 第1组。然后,我将如何了解其他两个物种。它们如何属于第2组或第3组。它是如何发生的。也许有一个我需要知道的计算?

1 个答案:

答案 0 :(得分: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名称,有序的物种名称放在一起,因为它们可以在树状图中看到,订单号和来自cutree函数的组。

> 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。我将练习它来检查其他(随机)行,并说服自己保留在开头构建表的顺序。因此,该表应该是正确的。