我有一个非常大的数据集(5亿)文档,并希望根据其内容对所有文档进行聚类。
最好的方法是什么? 我尝试使用k-means但它看起来不合适,因为它需要一次完成所有文件才能进行计算。
是否有适合较大数据集的聚类算法?
供参考:我使用Elasticsearch来存储我的数据。
答案 0 :(得分:1)
目前正在Coursera教授Cluster Analysis in Data Mining课程的J. Han教授表示,最常用的文本数据聚类方法是:
但我不知道如何将这些应用于您的数据集。这很棒 - 祝你好运。
对于k-means聚类,我建议阅读Ingo Feinerer的dissertation(2008)。这个人是tm包的开发者(在R中使用),用于通过Document-Term-matrices进行文本挖掘。
论文包含关于在某些文件(邮件列表和法律文本)上应用k-Means然后支持向量机分类器的案例研究(第8.1.4和9章)。案例研究以教程样式编写,但数据集不可用。
该过程包含许多手动检查的中间步骤。
答案 1 :(得分:0)
There are k-means variants thst process documents one by one,
MacQueen, J. B. (1967). Some Methods for classification and Analysis of Multivariate Observations. Proceedings of 5th Berkeley Symposium on Mathematical Statistics and Probability 1.
and k-means variants that repeatedly draw a random sample.
D. Sculley (2010). Web Scale K-Means clustering. Proceedings of the 19th international conference on World Wide Web
Bahmani, B., Moseley, B., Vattani, A., Kumar, R., & Vassilvitskii, S. (2012). Scalable k-means++. Proceedings of the VLDB Endowment, 5(7), 622-633.
But in the end, it's still useless old k-means. It's a good quantization approach, but not very robust to noise, not capable of handling clusters of different size, non-convex shape, hierarchy (e.g. sports, inside baseball) etc. it's a signal processing technique, not a data organization technique.
So the practical impact of all these is 0. Yes, they can run k-means on insane data - but if you can't make sense of the result, why would you do so?