优化 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)
这显然会膨胀,无论我在哪里运行它。我知道无法预先指定“标签”或集群的数量 - 还有什么是最好的?
我读过this thread 上使用“树冠预聚类”来压缩数据,就像在 DBSCAN 之前进行矢量量化一样(注意这种方法在计算上同样昂贵)——我可以使用类似的东西来预处理我的数据吗?或者“并行DBSCAN”怎么样?
【问题讨论】:
【参考方案1】:你有没有考虑过:
分区,一次集群一天(或更少) 采样,将您的数据集随机分成 10 个部分。单独处理它们【讨论】:
你将如何加入这些单独的分区?以上是关于优化 DBSCAN 以计算运行的主要内容,如果未能解决你的问题,请参考以下文章