r - 如何在R中找到在特定高度砍树时的簇数

标签 r hierarchical-clustering dendrogram unsupervised-learning dendextend

我想找到在给定高度砍伐一棵树时簇的数量。

该树属于 R 中的“dendrogram”类,因此我一直在使用包 dendextend 来探索这一点。

示例:

# Create a dend:
dend <- 1:5 %>% dist %>% hclust %>% as.dendrogram
# Plot it:
dend %>% plot

我想知道当我指定“height = 3”时有多少个簇(请参见生成的图中的 y 轴)。

在高度 3 处,我应该得到答案“2”,因为在该高度处,一条水平线应该碰到两条垂直线,因此会生成两个簇。

在“height = 1.5”处,答案应该是“3”,因为三条线交叉等等。

我正在使用dendrogram类的对象,因为我的原始数据采用Newick格式,并且我只找到了read.dendrogram()函数来解析该树。我已使用 as.hclust() 将其转换为 hclust 类,但我仍然找不到答案。

此外,如果有人知道如何绘制通过指定高度生成的簇,那将会有所帮助。

最佳答案

您想使用 denextend 中的 cutree

library(dendextend)
dend <- 1:5 %>% dist %>% hclust %>% as.dendrogram
length(unique(cutree(dend, h = 1.5)))

关于r - 如何在R中找到在特定高度砍树时的簇数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57255666/

相关文章:

machine-learning - 什么方法最适合对形状不规则的多维数据进行聚类?

python - 聚类算法的编程结构

r - R中的层次聚类默认行为?

r - 将 knitr 代码输出的字体颜色设置为仅黑色

r - 在 R Shiny 中实时更新数据框

r - R Markdown 文档标题中的希腊字母

r - 使用 R-markdown 包含多个图形

r - 在 R 中绘制仅包含观察子集的树状图

使用 R 在树状图中反转叶顺序

python - Scipy 树状图叶标签颜色