【问题标题】:How to know about group information in cluster analysis (hierarchical)?聚类分析(层次化)如何知道组信息?
【发布时间】:2012-07-14 10:30:57
【问题描述】:

我在聚类分析(分层聚类)中遇到group 的问题。例如,这是鸢尾花数据集完整链接的树状图。

使用后

> 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 组。它是如何发生的。也许我需要知道一个计算?

【问题讨论】:

    标签: r cluster-analysis hierarchical-clustering


    【解决方案1】:

    我猜你正在使用它来创建目前似乎不存在的图像。

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

    【讨论】:

    • 感谢您的解释@Roman Luštrik。我会通过你的答案。我会编辑图片。
    • 我正在尝试编辑,但不知何故,图片没有显示。另一种查看图像的方法是,在地址栏中复制此链接>i.stack.imgur.com/78c1m.png。真的很抱歉给您带来不便。
    • @Annie,你可能还没有足够的权限。我已经编辑了你的问题。如果您认为所提供的答案回答了您的问题,请随时单击答案分数下方的灰色复选标记进行标记。
    • 是的@Roman Luštrik,谢谢你的回答。它对我有帮助。但是,我一直想知道,如何手动对组进行分类。因为如果我改变:即。第 2 组到第 3 组的值(上表),并计算 ARI,那里绝对给出不同的答案,而且可能是错误的。表清楚地给出了答案,第 1 组是什么,所以第 2 组和第 3 组。这只是一些东西这让我一直在思考,但我还没有解决方案。
    猜你喜欢
    • 1970-01-01
    • 2022-01-04
    • 2018-10-22
    • 2021-10-04
    • 1970-01-01
    • 2015-12-28
    • 2021-11-16
    • 2010-09-10
    相关资源
    最近更新 更多