【发布时间】:2016-09-12 16:59:02
【问题描述】:
我正在使用自然语言处理,并且正在尝试对新闻文章标题进行聚类。我把标题变成了向量,但它们几乎是均匀分布的。有 2-3 篇新闻文章的小集群,但大多数新闻文章应该在自己的集群中。
我尝试使用 k-means,但文章很少更改聚类,因为数据相当统一。最初的随机簇最终成为最终的簇。
我尝试了凝聚聚类,它适用于小型数据集(几百篇文章)。但是,这需要很长时间,因为它至少是 O(n^2)。
是否有任何有效的算法来聚类几乎均匀分布的数据?
例如,如果我的数据是一组实数,它可能如下所示:
1 2 3 4 4.1 5 6
在这种情况下,簇应该是:(1), (2), (3), (4, 4.1), (5), (6)。 有没有比凝聚聚类更好的方法来做到这一点?
【问题讨论】:
-
聚类统一数据是不是矛盾?
-
如果您的数据“几乎一致”,那么 i) 没有集群,并且 ii) 您在预处理中做错了。文本不应该是统一的,而是 Zipf 分布的。对于此类数据,k-means 也是一个非常糟糕的选择——它不允许噪声(没有集群中的文章)。
-
我所说的几乎统一的意思是没有明显的分区可以拆分所有数据。由于 k-means 用于对数据进行分区,因此它不适用于我的数据。有明显小于 5 个节点的小集群,但应该有比 O(n^2) 更好的方法来找到这些集群。
标签: algorithm machine-learning nlp cluster-analysis