【问题标题】:Clustering of 10's of millions of high dimensional data数十亿高维数据的聚类
【发布时间】:2011-11-17 10:25:18
【问题描述】:

我有一组 5000 万个文本 sn-ps,我想用它们创建一些集群。维度可能在 60k-100k 之间。平均文本 sn-p 长度为 16 个单词。可以想象,频率矩阵会非常稀疏。我正在寻找可以让我找到这些集群的软件包/libray/sdk。我过去曾尝试过 CLUTO,但这对 CLUTO 来说似乎是一项非常艰巨的任务。从我在网上的研究中,我发现 BIRCH 是一种可以处理此类问题的算法,但不幸的是,我在网上找不到任何 BIRCH 实现软件(我只找到了几个 ad-hoc 实现,比如分配项目,缺乏任何任何类型的文档)。有什么建议吗?

【问题讨论】:

  • 我不确定,因为我想检查一下我的空闲时间,但是 map reduce/hadoop 可以帮助你吗?
  • 好吧,我必须并行化一个聚类算法才能让它工作,我有点希望那里有一些现成的解决方案
  • 看看 R、Python、Java 中的文本挖掘...这在 N (# rows) 或 P (# dims) 以及任何体面的文本挖掘/聚类中都不是特别大包应该让你开始。
  • 请问您想对这些集群做什么?这将导致另一个问题,即您需要使用哪种聚类方法。

标签: dataset cluster-analysis large-data


【解决方案1】:

用图分区算法试试。它可以帮助您对高维数据进行聚类。

【讨论】:

  • 您还必须尝试检查用于微阵列分析的算法。在那里,它也可以处理高维数据。
【解决方案2】:

我想您更愿意寻找类似all-pairs 搜索的内容。

这将为您提供达到所需阈值的相似记录对。之后您可以使用一些图论来提取集群 - 将每一对视为一条边。然后提取连接的组件会给你类似单链接聚类的东西,团会给你完整的链接聚类。

我刚刚找到了BIRCH in C++ 的实现。

【讨论】:

    【解决方案3】:

    我的教授在 Java 中制作了 BIRCH 算法的 implementation。使用一些内联 cmets 很容易阅读。

    【讨论】:

      【解决方案4】:

      您可能有兴趣查看使用 TopSig 表示的 Streaming EM-tree 算法。两者都是来自我的博士学位。关于大规模文档聚类的论文。

      我们最近在一台 16 核机器 (http://ktree.sf.net) 上聚集了 7.33 亿个文档。对文档进行索引大约需要 2.5 天,对它们进行聚类需要 15 小时。

      流式 EM-tree 算法可以在 https://github.com/cmdevries/LMW-tree 找到。它适用于 TopSig 生成的二进制文档向量,可以在 http://topsig.googlecode.com 找到。

      我早些时候在http://chris.de-vries.id.au/2013/07/large-scale-document-clustering.html 写了一篇关于类似方法的博客文章。但是,EM 树可以更好地扩展以进行并行执行,并且还可以生成质量更好的集群。

      如果您有任何问题,请随时通过 chris@de-vries.id.au 与我联系。

      【讨论】:

        猜你喜欢
        • 2012-01-02
        • 1970-01-01
        • 2020-04-26
        • 1970-01-01
        • 2021-08-24
        • 2013-05-17
        • 2010-11-15
        • 1970-01-01
        • 2018-07-15
        相关资源
        最近更新 更多