我知道DBSCAN需要两个参数(minPts和Eps)。但是,我对OPTICS需要什么参数感到困惑,因为有些消息来源说它需要eps而其他人说它只需要minPts。
如果我试图自动确定最能丢弃异常值的参数值,哪种算法会更好用?
答案 0 :(得分:3)
根据the original paper,minPts和Eps都是必需的。 那些说不需要Eps的来源可能正在使用某种方法来自动确定它的良好值。但是,仅包含Eps以减少算法的运行时间。这不是必需的。
关于哪种方法最适合删除异常值,没有比支持数字决策更好的方法:获取数据集并标记其异常值,然后针对它运行两种算法。对集群使用某种性能测量(AUC,F-score等)以选择最佳。
答案 1 :(得分:2)
OPTICS可以使用eps =无穷大运行。但那时它是O(n ^ 2)的复杂性。 (假设您有一个实际使用索引进行加速的实现。)
但OPTICS没有像DBSCAN那样定义明确的噪音概念。您可以获得的最接近的是采用群集层次结构的最顶层(即完整数据集)减去下面群集中的任何内容。但是考虑到层次聚类,你可以在层次结构的多个层面上有“噪音”,所以噪音的概念在这里不再有效。
答案 2 :(得分:2)
总而言之,有一些区别:
内存成本:OPTICS群集技术需要更多的内存,因为它维护一个优先级队列(最小堆)来确定在可达距离上最接近当前正在处理的点的下一个数据点。它还需要更多的计算能力,因为在DBSCAN中,最近的邻居查询比半径查询更复杂。
更少的参数:OPTICS聚类技术不需要维护epsilon参数,仅在上面的伪代码中给出以减少花费的时间。这样可以减少参数调整的分析过程。
OPTICS不会将给定的数据分为几类。它只是产生一个可到达距离图,并由程序员解释将这些点相应地聚类。
OPTICS对参数设置相对不敏感。如果参数“足够大”,效果很好。
有关更多详细信息,请参阅
https://medium.com/@xzz201920/optics-d80b41fd042a用于光学
https://medium.com/@xzz201920/dbscan-e1e50128074c for dbscan