聚类巨大的矢量空间

pio*_*otr 8 algorithm cluster-analysis

我正在做一些测试,聚集大量非常大的稀疏向量,表示各种超文本文档的术语 - 频率 - 逆文档 - 频率.考虑到数据集的比例,您建议使用什么算法来聚类这些数据?矢量的维数> 3·10 5,矢量的数量可以是10 9左右.我看了一下dbscan和光学算法.群集的数量不为小修道院.具有如此高维度的空间索引似乎很复杂.

Jer*_*fin 4

我使用简单的 K 均值聚类获得的结果几乎与其他任何方法一样好,而且它肯定比大多数替代方案更快。我也通过成对聚集获得了很好的结果,但速度要慢一些。对于 K 均值,您必须从一些估计的聚类数量开始,但您可以在进行过程中通过算法对其进行调整。如果您发现两个簇的均值太接近,则可以减少簇的数量。如果您发现聚类的变化范围太大,则可以尝试更多聚类。我发现 sqrt(N) 是一个合理的起点——但我通常从 10^7 个文档而不是 10^9 个文档开始。对于 10^9,稍微减少它可能是有意义的。

然而,如果由我决定,我会非常认真地考虑从使用 Landmark MDS 之类的东西降低维度开始,然后进行聚类。

  • K 均值应该**始终**是您在尝试对*任何内容*进行聚类时尝试的第一个分割技术。简单、高效,并且在大多数情况下都能提供出色的结果。唯一的缺点是必须选择适当的 K 值。您始终可以尝试增加 K 的序列来计算簇间方差,作为聚类质量的标准。然而,这在实践中效果并不那么好。 (3认同)