我目前正在尝试在 python 中使用 scikit learn 进行 DBSCAN 聚类。我想在改变 epsilon 参数时比较不同的输出,以便选择正确的 epsilon 参数。我以 iris 数据集为例。
为了比较集群,我考虑尝试在一个范围内(例如:0.1、0.2、...、1)用 epsilon 进行集群。现在,当我运行 kmeans 或层次聚类时,我可以通过检查间隙统计数据来选择我的 k 值,或者通过查看惯性并选择在惯性与 k 图上有“弯头”的 ak。
我的问题是我认为这将不再起作用,因为所有集群中的点总数在 DBSCAN 中不是恒定的。实际上,取决于 epsilon,“噪声样本”未分类点的数量会有所不同。结果,对于低 epsilon,我可能只有几分,导致非常小的惯性,这将是有偏差的。我可以考虑差距统计,因为我每次都可以生成大小合适的随机样本。但我想知道我是否会离开论文的有效性框架,我不确定是否仍然可以比较不同的聚类。
有没有人知道如何比较不同的总大小集群,更准确地说是不同 epsilon 的 dbscan 结果?轮廓系数会起作用还是对总尺寸也很敏感?