DBSCAN 与 OPTICS 的自动聚类

DBSCAN vs OPTICS for Automatic Clustering

我知道 DBSCAN 需要两个参数(minPts 和 Eps)。但是,我对 OPTICS 需要哪些参数感到困惑,因为一些消息来源说它需要 eps 而其他人说它只需要 minPts。

如果我试图自动确定最能丢弃异常值的参数值,哪种算法会更好?

根据the original paper,minPts 和 Eps 都是必需的。 那些说不需要 Eps 的消息来源可能正在使用某种方法自动为其确定一个好的值。但是,包含 Eps 只是为了减少算法的 运行时间.不需要。

关于哪种方法最适合移除异常值,没有比用数字支持您的决定更好的方法了:获取一个数据集并标记其异常值,然后 运行 两种算法都反对它。对集群使用某种性能测量(AUC、F 分数等)以达到 select 最佳。

OPTICS 可以是 运行,eps=infinity。但它是 O(n^2) 复杂性。 (假设您有一个实际使用索引进行加速的实现。)

但是 OPTICS 没有像 DBSCAN 那样定义明确的噪声概念。您可以获得的最接近的是采用集群层次结构的最顶层(即完整的数据集)减去下面集群中的任何内容。但是给定层次聚类,您 可以 在层次结构的多个级别上有 "noise",因此噪音的概念在这里不再适用。

总的来说,有几点不同:

内存成本:OPTICS 集群技术需要更多内存,因为它维护一个优先级队列(最小堆)以确定下一个数据点,该数据点在可达距离方面最接近当前正在处理的点。它还需要更多的计算能力,因为最近邻查询比 DBSCAN 中的半径查询更复杂。

更少的参数:OPTICS聚类技术不需要维护epsilon参数,只在上面的伪代码中给出,以减少花费的时间。这导致调参解析过程的减少。

OPTICS 不会将给定的数据分成簇。它仅生成可达距离图,并根据程序员的解释对点进行相应的聚类。

OPTICS对参数设置相对不敏感。如果参数“足够大”,结果会很好。

更多详情可以参考

https://medium.com/@xzz201920/optics-d80b41fd042a 光学

https://medium.com/@xzz201920/dbscan-e1e50128074c 用于 dbscan