1

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

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

4

3 回答 3

3

根据原始论文,minPts 和 Eps 都是必需的。 那些说不需要 eps 的消息来源可能正在使用某种方法来自动确定它的好值。但是,Eps 仅包含在内以减少算法的运行时间。这不是必需的。

关于哪个最适合去除异常值,没有比用数字支持您的决定更好的方法了:获取数据集并标记其异常值,然后针对它运行两种算法。对集群使用某种性能测量(AUC、F-score 等)来选择最好的。

于 2016-06-28T02:56:08.660 回答
2

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

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

于 2016-06-28T10:58:19.610 回答
2

总而言之,有几点不同:

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

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

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

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

更多详情,您可以参考

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

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

于 2020-04-28T02:14:19.883 回答