You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

KMeans聚类中为何用.argsort()[:,::-1]而非.argsort()获取关键词?

KMeans文本聚类取顶部词汇的排序逻辑

首先得明确:Sklearn的KMeans输出的cluster_centers_里的数值,不是词汇到质心的距离,而是该词汇在对应聚类中的特征权重均值(比如你用TF-IDF做文本特征的话,这个值就是该聚类所有样本中这个词汇的TF-IDF均值)。

所以我们要找的「聚类顶部词汇」,是那些权重最高、最能代表聚类主题的词汇,也就是cluster_centers_里数值最大的那些,而不是最小的。

  • 默认的.argsort()会返回数值从小到大的索引,比如你例子里得到的[2 5 8 6 0 4 7 3 1 9],对应的是权重从0到0.3257的词汇,这些靠前的都是权重极低甚至为0的词,根本不能代表聚类主题。
  • 而.argsort()[:,::-1]是把升序的索引结果反转,变成从大到小的顺序,这样排在前面的就是权重最高的词汇,也就是我们需要的聚类核心词汇。

拿你给的例子说:索引9的user权重0.3257是最大的,说明这个词在该聚类里出现的频率/重要性最高,是这个聚类的代表性词汇;而索引2的graph权重为0,说明该聚类里几乎没有这个词,完全不能代表聚类主题。

你的误解源于把cluster_centers_的特征值当成了词汇到质心的距离,实际它是词汇在聚类中的权重值,所以用.argsort()[:,::-1]才是正确获取聚类顶部核心词汇的方式。

内容的提问来源于stack exchange,提问作者Bits

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 17:22:06