使用ELKI聚类大数据

时间:2016-03-11 11:20:05

标签: memory subset hierarchical-clustering elki

我使用ELKI's AnderbergHierarchicalClustering对我的数据集进行了超过150000次观察,对于每次观察,我使用了三个变量:lat,{{1} }和lng,所有这些都是price

我遇到了以下问题:

  • 我的数据集大于接受的数据集(< = 65535观察值)
  • 此算法也针对double - right shift执行Agnes triangle - 这需要大(size * (size - 1)) >>> 1个需求

为了解决这个问题,我决定将数据集拆分为RAM的重叠子集。

对于20000 obs,我需要20000 obs

我不知道以这种方式分割数据的最佳方法是什么,应用于子集的聚类结果将尽可能接近聚类整个集合的结果。

1 个答案:

答案 0 :(得分:1)

如果您使用single-linkage,则可以使用只需SLINK内存的O(n)

它仍然需要O(n^2)时间。

Hierarchical clustering的可扩展性不高。

CLINK可以使用complete linkage内存O(n),但结果质量通常不是很好(通常比Anderberg complete linkage更差。< / p>

遗憾的是,我们拥有的所有其他算法都是O(n^2)

因此,在大约65535个实例中,您将使用Java撞墙。

我的待办事项列表中有一个算法应该可以在O(n log n)中运行,如果我没有与index support弄错的话。但我还没有详细研究它 - 除了linkage strategies之外,还不清楚哪个single-linkage可以支持。

如果你有很多重复,请务必先合并它们!