DBSCAN 聚类中 eps 参数的解释是什么?

机器算法验证 机器学习 聚类 空间的 层次聚类 数据库扫描
2022-03-13 07:20:09

我想对经纬度数据进行聚类,以便形成的所有聚类的半径<=1000米

问题

  1. eps参数的实际含义是什么?请举个例子。
  2. 如果距离测量是以米为单位的半正弦,那么设置 eps=1000 会达到我的目的吗?

我知道 minpts 参数是集群大小。

2个回答

Epsilon 是扩展集群的局部半径。把它想象成一个步长 - DBSCAN 永远不会比这更大,但是通过执行多个步骤DBSCAN 集群可以变得比 eps 大得多

如果您希望您的“集群”具有最大半径,这是一个集合覆盖类型的问题,因此您可能需要一个贪婪的近似值。这不是聚类问题,因为您不允许聚类算法发现比这更大的结构。你想用一个覆盖,忽略结构来近似你的数据。

但是有一些聚类算法可以限制聚类半径(但它们可能不会尽力优化您的问题):

  1. LEADER 有点像 DBSCAN 减去集群扩展。选择一个未聚集的点并添加 x 半径内的所有内容。重复直到所有点都“聚集”。它不会优化任何东西,你也不会得到很多理论属性。但是集群中的最大距离是 2x。运行两次,你会得到非常不同的结果。
  2. 在高度 x 处切割树状图后的完整链接 HAC,即两点的最大距离。结果应该比Leader的好很多,也更稳定。然而,全链路 HAC 可能找不到最佳值。3 CLINK 是完整链接的更快变体(仅 O(n²) 而不是 n³),但往往会找到更糟糕的解决方案。您可能希望对数据的排列运行多次。

的意思ϵ是邻域大小。一个点的邻域p,表示为Nϵ(p), 被定义为Nϵ(p)={qD|dist(p,q)ϵ}. 这里D是一个数据库n对象(点)和q一个查询点。 ϵ是什么将构成您的特定问题的合理半径例如,在寻找几十公里的城市集群时可能是合理的。另见这篇文章是的,我猜ϵ=1000似乎是一个合理的初步估计。我可能会先尝试更大的东西,但这似乎并没有错位。让我指出,选择你的距离度量可能比你的更重要ϵ在某种方式。您还可以使用不同的方法重新运行分析ϵ并查看它的影响,但您的见解将直接与使用的距离度量相关联。