DBSCAN算法

问题描述

我是 Python 编码的初学者,我正在尝试使用 DBSCAN 算法来识别具有高密度闪烁照片的城市区域。 DBSCAN(eps,min_samples)的参数有没有确定的标准?

谢谢

解决方法

说明如何选择这些参数的 guide

来自指南:

根据 DBSCAN 算法(Ester、Kriegel、Sander 和 Xu,1996 年)的 originators,我们可以使用这种启发式算法来找到 ε 和 MinPts: 对于给定的 k,我们构建了排序的 k-dist 图(您可以在指南中阅读它)。阈值点是排序后的 k-dist 图的第一个“谷”中的第一个点。阈值的 k-dist 值将是 ε 值。研究表明 k > 4 的 k-dist 图与 4-dist 图没有显着差异,它们需要更多的计算。因此,他们通过将所有数据库(二维数据)的参数 MinPts 设置为 4 来消除参数 MinPts。阈值点的 4-dist 值用作 DBSCAN 的 ε 值。

如果您不希望 MinPts 值为 4,您可以决定 MinPts = k+1。选择 k 的一种启发式方法是将 k 设置为 2 * 维度 -1(Sander、Ester 等人,1998)。

另一种选择 MinPts 值的启发式方法-

enter image description here

其中 Pᵢ 是点 i 的 ε-邻域中的点数,n 是数据集中的点数。对于每个不同的 ε 值,我们将获得相应的 MinPts 值(Sawant,2014)。