【发布时间】:2021-04-19 12:44:25
【问题描述】:
我是 Python 编码的初学者,我正在尝试使用 DBSCAN 算法来识别城市中具有高密度闪烁照片的区域。确定DBSCAN(eps, min_samples)的参数有什么标准吗?
谢谢
【问题讨论】:
我是 Python 编码的初学者,我正在尝试使用 DBSCAN 算法来识别城市中具有高密度闪烁照片的区域。确定DBSCAN(eps, min_samples)的参数有什么标准吗?
谢谢
【问题讨论】:
guide 解释了如何选择这些参数。
来自指南:
根据 DBSCAN 算法的originators (Ester, Kriegel, Sander and Xu, 1996),我们可以使用这个启发式来找到 ε 和 MinPts : 对于给定的 k,我们构建排序的 k-dist 图(您可以在指南中了解它)。阈值点是排序的 k-dist 图的第一个“谷”中的第一个点。阈值的 k-dist 值将是 ε 值。研究表明,k > 4 的 k-dist 图与 4-dist 图没有显着差异,它们需要更多的计算。因此,他们通过将所有数据库(二维数据)的参数 MinPts 设置为 4 来消除参数 MinPts。阈值点的 4 距离值作为 DBSCAN 的 ε 值。
如果您不希望 MinPts 值为 4,您可以决定 MinPts = k+1。选择 k 的启发式方法是将 k 设置为 2 * 维度 -1 (Sander, Ester et al., 1998)。
另一个选择 MinPts 值的启发式方法-
其中 Pᵢ 是点 i 的 ε 邻域中的点数,n 是数据集中的点数。对于每个不同的 ε 值,我们将获得相应的 MinPts 值(Sawant,2014)。
【讨论】: