作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在做一些测试,将大量非常大的稀疏向量聚类,这些向量表示各种超文本文档的词频逆文档频率。考虑到数据集的比例,您建议使用什么算法对这些数据进行聚类?向量的维度将> 3·105 并且向量的数量可以在109 左右。我看过 dbscan 和光学算法。集群的数量是未知的。这么高维的空间索引看起来很复杂。
最佳答案
我使用简单的 K 均值聚类得到的结果几乎与其他任何方法一样好,而且它肯定比大多数替代方法都快。我也通过成对聚集获得了不错的结果,但速度要慢得多。对于 K-means,您必须从一些估计的簇数开始,但您可以在进行过程中通过算法对其进行调整。如果您发现两个聚类的均值靠得太近,则可以减少聚类的数量。如果您发现变化范围太大的聚类,您可以尝试更多的聚类。我发现 sqrt(N) 是一个合理的起点——但我通常从 10^7 个文档而不是 10^9 个文档开始。对于 10^9,稍微减少它可能是有意义的。
但是,如果由我来决定,我会非常认真地考虑从使用 Landmark MDS 之类的东西降低维度开始,然后进行聚类。
关于algorithm - 聚类巨大的向量空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1539745/
我是一名优秀的程序员,十分优秀!