gpt4 book ai didi

python - Kmean 集群中的顶级术语

转载 作者:太空宇宙 更新时间:2023-11-03 14:48:53 26 4
gpt4 key购买 nike

我正在对聚类文档使用 python Kmean 聚类算法。我创建了一个术语文档矩阵

   from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.cluster import KMeans
vectorizer = TfidfVectorizer(tokenizer=tokenize, encoding='latin-1',
stop_words='english')
X = vectorizer.fit_transform(token_dict.values())

然后我使用以下代码应用了 Kmean 聚类

 km = KMeans(n_clusters=true_k, init='k-means++', max_iter=100, n_init=1)
y=km.fit(X)

我的下一个任务是查看每个集群中的顶级术语,在 googole 上搜索表明许多人使用 km.cluster_centers_.argsort()[:,::-1] 来查找集群中的顶级术语使用以下代码集群:

 print("Top terms per cluster:")
order_centroids = km.cluster_centers_.argsort()[:, ::-1]
terms = vectorizer.get_feature_names()
for i in range(true_k):
print("Cluster %d:" % i, end='')
for ind in order_centroids[i, :10]:
print(' %s' % terms[ind], end='')
print()

现在我的问题是,根据我的理解,km.cluster_centers_ 返回集群中心的坐标,例如,如果有 100 个特征和三个集群,它将返回一个 3 行 100 列的矩阵,代表一个质​​心每个集群。我希望了解在上面的代码中如何使用它来确定集群中的顶级术语。谢谢 任何评论表示赞赏纳迪姆

最佳答案

关于聚类中心的形状和含义,您是正确的。因为您使用的是 Tf-Idf 向量化器,所以您的“特征”是给定文档中的单词(每个文档都是它自己的向量)。因此,当您对文档向量进行聚类时,质心的每个“特征”都代表该词与其的相关性。 “word”(在词汇表中)="feature"(在你的向量空间中)="column"(在你的质心矩阵中)

get_feature_names 调用获取列索引到它所代表的词的映射(从文档看来……如果这不能按预期工作,只需反转 vocabulary_ 矩阵以获得相同的结果)。

然后 .argsort()[:,::-1] 行将每个质心转换为其中最“相关”(高值(value))列的排序(降序)列表,以及最相关的词(因为词=列)。

其余代码只是打印,我相信不需要任何解释。所有代码真正做的是按照其中最有值(value)的特征/词的降序对每个质心进行排序,然后将这些列映射回它们的原始词并打印它们。

关于python - Kmean 集群中的顶级术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47452119/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com