有人可以在层次聚类的背景下解释 C-Index 吗?

机器算法验证 聚类
2022-03-15 15:07:41

这是对这个问题的跟进。我目前正在尝试实现 C-Index,以便从集群层次结构中找到接近最佳数量的集群。我通过计算(凝聚)层次聚类的每一步的 C-Index 来做到这一点。问题是对于非常退化的聚类,C-Index 是最小的(准确地说是 0)。考虑一下:

c=SSminSmaxSmin

在这种情况下是所有集群中同一集群中的观测值对之间的所有距离的总和。为这些对的数量。是所有观测值对最低/最高距离的总和。在层次聚类的第一步中,将两个最近的观测值(最小距离)合并为一个聚类。为这些观测值之间的距离。现在在同一个集群中有一对观测值,所以(所有其他集群都是单例)。因此问题是也等于SnSminSmaxndn=1S=dSmind,因为是最小的距离(这就是为什么首先合并观察的原因)。因此,对于这种情况,C-Index 始终为 0。只要仅合并单例集群,它就保持为 0。这意味着根据 C-Index 的最佳聚类将始终由一组包含两个观测值的聚类和其余的单例组成。这是否意味着 C-Index 不适用于层次聚类?难道我做错了什么?我搜索了很多,但找不到任何合适的解释。有人可以向我推荐一些在互联网上免费提供的资源吗?或者,如果没有,至少我可以尝试在我的大学图书馆获得一本书?d

提前致谢!

1个回答

这可能是集群中艺术多于科学的情况之一。我建议你让你的聚类算法运行一小段时间,然后让 C-Index 计算开始。“短时间”可能是在处理几对之后,就在它开始超过 0 时,或者其他一些启发式方法。(毕竟您不希望停留在 1 或 2 个集群上,否则可能会部署不同的分离算法。)

对于书籍推荐,我可以建议:

  • Brian Everitt、Sabine Landau、Morven Leese 的聚类分析

您可以扫描/搜索谷歌图书上的可用内容,看看它是否符合您的需求。它过去曾作为我的参考。