优化 DBSCAN 以计算运行

Posted

技术标签:

【中文标题】优化 DBSCAN 以计算运行【英文标题】:Optimizing a DBSCAN to run computationally 【发布时间】:2016-05-16 00:33:27 【问题描述】:

我在一个数据集(建模与http://scikit-learn.org/stable/auto_examples/cluster/plot_dbscan.html 非常相似并作为熊猫数据帧加载)上运行 Python 中的 DBSCAN 算法,该数据集在 31 天内共有约 300 万个数据点。此外,我每天进行密度聚类以查找异常值,所以 db = DBSCAN(eps=0.3, min_samples=10).fit(data) 在每次传递中只有一天的数据点可以运行。我在任何一天拥有的最小/最大点是 15809 和 182416。我尝试删除变量,但该过程在 DBSCAN 集群阶段被终止。

    O(n log n) 这显然会膨胀,无论我在哪里运行它。我知道无法预先指定“标签”或集群的数量 - 还有什么是最好的?

    1234563到 DBSCAN?

    我读过this thread 上使用“树冠预聚类”来压缩数据,就像在 DBSCAN 之前进行矢量量化一样(注意这种方法在计算上同样昂贵)——我可以使用类似的东西来预处理我的数据吗?或者“并行DBSCAN”怎么样?

【问题讨论】:

【参考方案1】:

你有没有考虑过:

分区,一次集群一天(或更少) 采样,将您的数据集随机分成 10 个部分。单独处理它们

【讨论】:

你将如何加入这些单独的分区?

以上是关于优化 DBSCAN 以计算运行的主要内容,如果未能解决你的问题,请参考以下文章

Python实现DBScan

Python实现DBScan

如何优化此代码以运行更大的值? [复制]

数据分析基于多元宇宙优化DBSCAN聚类matlab源码

DBSCAN 返回 TypeError:无效的类型提升

防火墙和系统安全防护和优化