何时停止凝聚层次聚类 - 停止标准

时间:2015-09-04 23:24:31

标签: algorithm machine-learning cluster-analysis pseudocode hierarchical-clustering

我正在为我的应用程序编写每个函数,所以我没有使用为你做任何事情的工具

一直在寻找何时削减我的凝聚层次聚类的解决方案

我如何聚类?

我已在c#4.5.2中编写了应用程序

到目前为止,我使用的是标准层次结构,它使用Euclidean_Distance来计算文档对之间的距离

它还使用UPGMA计算群集之间的距离以决定合并哪些

我还编写了Rand Index和F Measure来测试我手动标记的数据集成功

然而问题是当停止合并更多集群时

我很难理解数学方程式而没有真实数据示例或很好解释的伪代码

到处都有数学方程,但没有真实的例子

所以寻找你的答案。例如,它写在很多地方贝叶斯信息标准(BIC)是一个很好的解决方案但我无法弄清楚如何将其应用到我的软件

我还有其他距离或相似度指标,如余弦相似度或Sorensen骰子距离等

有关stackexchange或stackoverflow的问题很多,但所有答案都是使用工具

喜欢matlab或R等等

1 个答案:

答案 0 :(得分:2)

尝试计算每个特定聚类的拟合程度 - 例如,聚类中心的距离总和,或误差的平方和。您会发现,当您增加群集数量时,此错误会减少 - 它更容易适应更多群集,并随着群集数量的减少而增加。

现在绘制一个图形并寻找一个“肘部”,随着簇数减少,误差开始变得更大。然后,您可以假设错误开始快速增加之前的最小簇数是数据中簇的真实数量。

例如,参见Cluster analysis in R: determine the optimal number of clusters中正好位于文本“我们可能会认为此方法将指示4个群集:”

的图表。