据说DBSCAN在处理边界点时不够一致,具体取决于它首先将点分配到哪个聚类。有没有DBSCAN的变体能够考虑到边界点在每个聚类中的邻近点数(eps),在分配边界点到某个聚类时使用这一信息?
回答:
在这种情况下,通常每个聚类中的点数为1。
更好的决策方法是使用距离,但即便如此,也可能出现平局。
这是一个简单的修改,可以在后处理中轻松实现:对于每个边界点,找到最近的核心点,并使用那个标签。
然而,这是否重要呢?
聚类永远不会是完美的。我们在这里讨论的是一种罕见的情况,其中“最佳”(基于两个硬性阈值的相当临时的“最佳”定义)的分配通常对最终结果没有0.000的差异。
如果我没记错的话,DBSCAN的作者建议你也可以将这些点分配到两个聚类。这据说是最符合定义的解决方案(边界点确实可以从两个聚类中到达)。但这使得一切变得更加复杂。因为许多用户希望每个点在漂亮的数值列中只有一个标签,而不必处理这种特殊情况。