我计划测试一些数据的聚类方法的可靠性。我的计划是重复(有替换)绘制一些随机子样本对(例如总数据的 2x 10%),分别对两者运行聚类,然后比较结果。问题是我正在使用 HDBSCAN,它不仅会创建非固定数量的集群(针对不同的数据集但相同的参数),而且由于未定义 k,因此它也会以不同的方式标记集群,并且输入数据将始终由于可变性,结构略有不同。
我通过在我的数据的两个子样本(A、B)上使用相同的 HDBSCAN 参数对此进行了测试,我的问题很容易看出。A 对应样本的聚类标签为:
{-1: 4306, 0: 1737, 1: 2999, 2: 72068, 3: 20628, 4: 3120}
而对于 B,他们是:
{-1: 4478, 0: 1711, 1: 3048, 2: 72089, 3: 3123, 4: 20408}。
由此看来,在我们比较标签 3 之前,该解决方案似乎非常接近。看起来 A 的标签 3 对应于 B 的标签 4。
我最初的想法是,我可以按照每个集群的样本大小的顺序重新标记它们。但这假设这两种解决方案在许多测试中都是相似的(这最终是测试的重点)。所以我的下一个想法是我可以设置以下约束:(1)噪声组中应该有“相似”数量的样本,以及(2)应该找到相同数量的集群。如果满足这两个条件,那么我可以按样本大小的顺序重新标记集群,然后使用 ARI 或 AMI 进行比较。
我怀疑这是否好,因为我不认为(即使考虑到两个约束)根据样本标记为相同的两个集群必然对应于相同的“全局”集群。因此,这对我来说似乎有问题,但我想不出替代方案。
上述做法一般合理吗?如果没有,我还能做些什么来评估 HDBSCAN 解决方案的可靠性/稳定性?作为替代方案,是否只计算 DBCV 分数、噪声百分比和集群数量,然后将其用作集群质量的指标?