为DBSCAN选择eps和minPts的例程


14

根据一些文献,DBSCAN是最常被引用的聚类算法,它可以基于密度找到任意形状的聚类。它有两个参数eps(作为邻域半径)和minPts(作为将一个点视为核心点的最小邻居),我认为这很大程度上取决于它们。

是否有任何常规或常用方法来选择这些参数?


1
请注意,在堆栈溢出上也有类似的问题:为DBSCAN(R)选择eps和minpts?
gung-恢复莫妮卡

Answers:


11

有许多出版物提出了选择这些参数的方法。

最著名的是OPTICS,它是一种DBSCAN变体,它消除了epsilon参数。它产生了一个分层结果,可以粗略地看成是“在所有可能的epsilon上运行DBSCAN”。

对于minPts,我建议不要依赖自动方法,而要依赖您的领域知识

好的聚类算法具有参数,可让您根据需要对其进行自定义。

您忽略的参数是距离函数。DBSCAN要做的第一件事是为您的应用程序找到一个好的距离函数。不要依赖欧几里得距离是每种应用的最佳选择!


尽管用户可以选择距离功能,但我怀疑它是一个参数。
Mehraban 2014年

1
当然是的。它与任何其他内核化方法(实际上您可以通过这种方式对DBSCAN进行内核化)的内核函数一样多,而且是一个参数,以我的经验,诸如Canberra或Clark的其他距离可以显着改善结果
已退出–Anony-Mousse 2014年

我并没有低估距离函数对聚类的影响,但是我认为它是某种程度上通用的,并不是特定于dbscan或其他所有聚类算法的。而eps和minPts是显式的dbscan参数。
Mehraban 2014年

1
也有很多基于非距离的算法。并且当您认为minPts与例如k最近邻居分类相同时,则可以对minPts参数说相同。我猜主要的区别是距离,存在一个“通常”的明智默认值:欧几里得距离;而对于minPts,该值将取决于数据。
已退出–Anony-Mousse 2014年

1
OPTICS本身不会为您提供分区,而是为群集提供顺序。要获得分区,请使用OPTICS论文中描述的xi提取。请参阅每个变体文件以了解差异。
已退出–Anony-Mousse
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.