1

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

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

  2. 此外,从优化的角度来看,这些数据点的某些值将是准确的(将这些视为重复的聚类点)——我可以使用这些信息在馈送到 DBSCAN 之前处理数据吗?

  3. 我在 DBSCAN 之前阅读了关于使用“树冠预聚类”来压缩数据的线程(注意这种方法在计算上同样昂贵)——我可以使用类似的东西来预处理我的数据吗?或者“并行 DBSCAN”怎么样?

4

1 回答 1

1

您是否考虑过这样做:

  • 分区,一次集群一天(或更少)
  • 抽样,将您的数据集随机分成 10 个部分。单独处理它们
于 2016-02-06T08:43:32.130 回答