我有一个算法,可以将数据分组到层次聚类树中。该算法是托比·西格拉姆 (Toby Seagram) 的《集体智慧编程》(Programming Collective Intelligence) 中描述的算法。树的输出是一个二叉树,每个节点都有一个“距离”值,它告诉您两个子节点相距多远。
然后我可以将其显示为树状图,这使得人类可以很容易地将值分组在一起。然而,我很难想出一种自动决定分组应该是什么的算法。我希望能够自动确定:
- 群组数量
- 每组应放置哪些点
有标准算法吗?
最佳答案
我认为没有默认的方法可以做到这一点。简单的“手动”方法是:
- 指定您想要/期望的集群数量
- 设置两个节点之间最大距离的阈值;距离较大的任何节点都属于另一个集群
有一些自动方法来determine the number of clusters 。 R
有 Dynamic Tree Cut package它会自动处理这个问题,也 pvclust可用于。这里描述了另外两种处理此问题的方法,Salvador (2002)和 Daniels (2006) .
关于machine-learning - 确定分层集群中的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12237001/