【发布时间】:2020-11-03 01:45:29
【问题描述】:
我尝试按学生的兴趣对他们进行分组。这些小组的规模应该大致相同,即使这意味着如果某些学生不适合任何小组,他们就不会真正与小组成员分享兴趣。
我使用了 R 的 hclust() 函数并得到了一个非常漂亮的树状图 - 所以效果很好 - 但是当我尝试使用 cutree() 设置集群时,我可以调整 h(树的高度)或 @ 987654325@(所需的组大小)。问题是,即使我将组大小设置为某个值,我也会得到一些更小的组。
如果你看一下绘制的树,有些学生的兴趣与其他学生完全不同,所以我想这就是它发生的原因。
为了防止这种情况,我想做的是“禁止”具有一定最小规模的组,所以如果有这样的组,它们会被添加到另一个小组或类似的东西中。有没有一种简单的方法可以做到这一点,还是我必须编写自己的函数来在集群后清理一下?
我在 StackOverflow 上发现了类似的问题(例如 this one),但它们都没有被标记为已回答,在我提到的特定情况下,恐怕我并没有真正得到建议的解决方案。
提前感谢您的意见!
梅尔
【问题讨论】:
-
如果您并不真正需要“分层”聚类方法,而只是想将您的学生分成大小相等的组,您可以查看
anticlust包中的函数balanced_clustering(). (或者matching()在同一个包中,它的作用几乎相同,但您可以指定组的大小而不是集群的数量)。 -
哦,这听起来正是我需要的!谢谢!!!
-
好的,那我把这个添加为答案。
-
再次感谢,这就像魔术一样!
-
作为包的作者,很高兴知道这一点:D
标签: r cluster-analysis hierarchical-clustering