我有一个群集数量未知的数据集,我的目标是聚类它们。由于我不知道预先提供的簇数,我尝试使用基于密度的算法,尤其是DBSCAN。我与DBSCAN的问题在于如何检测适当的epsilon。 DBSCAN论文中建议的方法假设存在一些噪声,当我们绘制排序的k-dist图时,我们可以检测到谷并定义epsilon的阈值。但是,我的数据集是从受控环境中获得的,并且没有噪音。
有人知道如何检测epsilon吗?或者,建议更好的聚类算法可以解决这个问题。
答案 0 :(得分:0)
通常,没有无监督的epsilon检测。从你所描述的一点点来看,DBSCAN是一种非常合适的方法。
现实世界的数据倾向于具有平缓的距离梯度;决定什么距离应该是截止是一个需要了解范式和最终用途的判断。简而言之,问题需要原始数据中未包含的知识。
我建议您使用简单的步进方法来收敛您想要的解决方案。将epsilon设置为您的观察建议适当的一些简单值。如果你得到太多碎片,将epsilon增加3倍;如果簇太大,则减少3倍。重复运行直到得到所需的结果。