FactoMineR/factoextra 可视化树状图中的所有簇

FactoMineR/factoextra visualize all the clusters in the dendrogram

我使用包 FactoMineR 的 HCPC 函数对数据帧执行了层次聚类。问题是,当我使用 factoextra 绘制树状图时,我无法想象我询问的簇数。 下面是我的问题的可重现示例

model <- HCPC(iris[,1:4], nb.clust = 5) 

上面确实有5个簇

fviz_dend(model, k = 5,
          cex = 0.7,                     
          palette = "default",              
          rect = TRUE, rect_fill = TRUE, 
)

但只有 3 个映射在树状图中

您可以只使用具有 color_branches 功能的 dendextend R 包:

library(dendextend)
dend <- USArrests %>% dist %>% hclust(method = "ave") %>% as.dendrogram
dd <- color_branches(dend,5)
plot(dd) 

我遇到了同样的问题:fviz_dend 函数总是 return 它认为是最佳的簇数量,即使我试图覆盖它——无论是在 HCPC 或在 fviz_dend 函数中。

在坚持使用 FactoMineR 和 factoextra 的同时解决此问题的一种方法是更改​​由 HCPC 函数计算的默认簇数:

model$call$t$nb.clust = 5

然后 运行 fviz_dend 函数。

这应该returnthe result that you were expecting.