【发布时间】:2018-11-25 16:31:15
【问题描述】:
据说 DBSCAN 在边界点上并不一致,取决于它将点首先分配给哪个集群。 是否存在 DBSCAN 的变体,当它想要将边界点分配给其中一个集群时,它会考虑每个集群中边界点接近的点数 (eps)?
【问题讨论】:
标签: machine-learning cluster-analysis dbscan
据说 DBSCAN 在边界点上并不一致,取决于它将点首先分配给哪个集群。 是否存在 DBSCAN 的变体,当它想要将边界点分配给其中一个集群时,它会考虑每个集群中边界点接近的点数 (eps)?
【问题讨论】:
标签: machine-learning cluster-analysis dbscan
在这很重要的情况下,两个集群的点数通常为 1。
更好的决胜局将是距离,但即使这样也可以有平局。
这是一个微不足道的修改,在后期处理中很容易实现:对于每个边界点,找到最近的核心点,并使用该标签。
但是,这有关系吗?
集群从来都不是完美的。我们在这里讨论的是一种罕见的情况,其中“最佳”(对于“最佳”的相当特别的定义,基于两个硬阈值)分配通常会对最终结果产生 0.000 差异。
如果我没记错的话,DBSCAN 作者建议您也可以将这些点分配给两个集群。这应该是最符合定义的解决方案(边界点 可从两个集群到达)。但这使一切变得更加复杂。因为许多用户希望每个点在一个漂亮的数字列中都有 一个 标签,而不必处理这种特殊情况。
【讨论】:
有点晚了,但仍然:首先,边界点本身必须是核心点,因为在其 epsilon 邻域中必须至少有一个进一步的对象,从该对象可以直接达到密度。否则它不会连接到集群。
根据定义,DBSCAN 结果是确定性的 w.r.t。核心点和噪声点,但不是边界点,所以:如果边界点的密度可以从两个集群到达,它实际上取决于处理或您的实现,它将被分配到哪个集群。
【讨论】: