我对自己在聚类分析(分层聚类) 组的问题。 作为例子,这是虹膜数据集的完全连锁的树状图。
之后我用
> 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是如何发生的。 也许有一个计算我需要知道什么?
我猜你用这个来创建不出现的那一刻到那里的形象。
> 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
。 我会让它的运动让你检查其他(随机)的行和说服自己,在开始构建表中的顺序被保留。 因此,这个表应该这样是正确的。