如何从 Tf-IDF 向量中选择 K-mean 的初始聚类

Posted

技术标签:

【中文标题】如何从 Tf-IDF 向量中选择 K-mean 的初始聚类【英文标题】:How to choose the initial clusters for K-mean from Tf-IDF vectors 【发布时间】:2015-01-14 09:43:45 【问题描述】:

我正在处理文本聚类。我想选择特定文档(作为向量)作为 k-means 的 centroID。

我已经使用 Mahout 为我的数据集创建了 TF-IDF,我想从 TFIDF 向量中选择初始集群。

有人知道如何在 Mahout 中指定初始质心吗?

【问题讨论】:

Mahout 有内置的质心选择,不是吗? 是的,Mahout 可以随机选择质心或使用 Canopy,但我想手动选择它们。 它还有一个手动指定它们的选项。 【参考方案1】:

bin/mahout kmeans -c 输入集群目录 -k 从输入向量中采样的可选初始簇数

如果提供了 -k 参数,则 -c 目录中的所有簇都将被覆盖,并且 -k 随机点将从输入向量中采样成为初始簇中心。

参考:https://mahout.apache.org/users/clustering/k-means-clustering.html

【讨论】:

【参考方案2】:

一种可能是使用Cosine similarity 而不是TF-IDF,方法是查看彼此相距最远的文档。像这样的:

    选择一个文档 1. 从文档 1 中选择最远的文档 2。 从文档 1 和 2 中选择最远的文档。 等

查看this 可能也会有所帮助。

【讨论】:

以上是关于如何从 Tf-IDF 向量中选择 K-mean 的初始聚类的主要内容,如果未能解决你的问题,请参考以下文章

NLP-词向量:如何理解TF-IDF?

如何标准化 SVM 的 tf-idf 向量?

我如何可视化用于 kmeans 聚类的 tf-idf 向量的数据点?

如何从 PySpark 中的向量结构中获取项目

如何使用 tf-idf 对新文档进行分类?

对 TF-IDF 特征向量中的特定特征进行加权,用于 k-means 聚类和余弦相似度