我有一个字符串列表,我用来适应sklearn.cluster.KMeans
:
X = TfidfVectorizer().fit_transform(docs)
km = KMeans().fit(X)
现在我想让集群中心以其原始字符串表示形式。我知道km.cluster_centers_
,但不知道如何获得docs
的相关指数。
在 k 均值中没有聚类中心的"原始表示";它们实际上不是输入集中的点(矢量化文档),而是多个点的均值。这种手段不能转换回文档,因为词袋表示破坏了术语的顺序。
一种可能的近似方法是取一个质心向量,然后在其上使用TfidfVectorizer.inverse_transform
来找出哪些项具有非零 tf-idf 值。
你可以用k-medoids算法实现你想要的,该算法确实将实际输入点分配为质心,但这在scikit-learn中没有实现。