如何从scikit-learn KMeans获取集群中心的文本?

时间:2012-07-05 13:18:16

标签: python machine-learning k-means scikit-learn

我有一个用于符合sklearn.cluster.KMeans的字符串列表:

X = TfidfVectorizer().fit_transform(docs)
km = KMeans().fit(X)

现在我想将聚类中心放在原始字符串表示中。我知道km.cluster_centers_但无法弄清楚如何获得docs的相关索引。

1 个答案:

答案 0 :(得分:7)

k -means中没有聚类中心的“原始表示”;它们实际上不是来自输入集的点(矢量化文档),而是多点的手段。由于词袋表示会破坏术语的顺序,因此无法将此类方法转换回文档。

一种可能的近似是采用质心向量,然后在其上使用TfidfVectorizer.inverse_transform来找出哪些项具有非零tf-idf值。

您可以使用k-medoids算法实现您想要的效果,该算法会将实际输入点指定为质心,但这并未在scikit-learn中实现。