我有一个用于符合sklearn.cluster.KMeans
的字符串列表:
X = TfidfVectorizer().fit_transform(docs)
km = KMeans().fit(X)
现在我想将聚类中心放在原始字符串表示中。我知道km.cluster_centers_
但无法弄清楚如何获得docs
的相关索引。
答案 0 :(得分:7)
k -means中没有聚类中心的“原始表示”;它们实际上不是来自输入集的点(矢量化文档),而是多点的手段。由于词袋表示会破坏术语的顺序,因此无法将此类方法转换回文档。
一种可能的近似是采用质心向量,然后在其上使用TfidfVectorizer.inverse_transform
来找出哪些项具有非零tf-idf值。
您可以使用k-medoids算法实现您想要的效果,该算法会将实际输入点指定为质心,但这并未在scikit-learn中实现。