首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在大向量中寻找最优k-簇

在大向量中寻找最优k-簇
EN

Stack Overflow用户
提问于 2020-02-05 22:48:48
回答 1查看 191关注 0票数 2

我有569个向量,我想用K-Means进行聚类。但首先,我需要找到最优的K-Cluster。我尝试了使用YellowBrick包中的KElbowVizualizer函数的肘部方法,但它无法显示K-Clusters的确切数量。所以现在我正在寻找一种替代方案。

你知道如何找到最优的k-cluster吗?

这是我在KElbowVisualizer中使用的代码:

代码语言:javascript
复制
from sklearn.cluster import MiniBatchKMeans
from sklearn.feature_extraction.text import TfidfVectorizer
from yellowbrick.cluster import KElbowVisualizer

vec = TfidfVectorizer(
      stop_words = 'english',
      use_idf=True
)

vectors_= vec.fit_transform(df1)

model = MiniBatchKMeans()
titleKElbow = "The Optimal K-Cluster with Elbow Method"
visualizer = KElbowVisualizer(model, k=(2,30), metric='silhouette', timings=False, title = titleKElbow, size=(1080, 720))
visualizer.fit(vectors_)
visualizer.show(outpath="G:/My Drive/0. Thesis/Results/kelbow_minibatchkmeans.png")
EN

回答 1

Stack Overflow用户

发布于 2020-02-06 00:26:30

让我解释一下我的一种方法,我知道这很耗时,但如果你需要一些简单的-愚蠢的东西,这里就是:

当我试图找到最佳聚类数时,我只需在2到n之间执行for循环,在每次迭代中使用不同数量的质心,拟合模型并打印轮廓分数。

我选择得分最高的模型,或者如果存在与特征中的组相匹配的特定数量的聚类,则选择得分最高的模型。

示例代码:

代码语言:javascript
复制
for i in range(2, 30):
    model = MiniBatchKMeans(n_clusters=i)
    model.fit(vectors_)
    score = silhouette_score(vectors_, model.labels_)
    print("Number clusters: {}, Silhouette score is {})".format(i, score))

它可以输出类似如下的内容:

代码语言:javascript
复制
Number clusters: 2, Silhouette score is 0.519799469615586)
Number clusters: 3, Silhouette score is 0.6105084877652616)
Number clusters: 4, Silhouette score is 0.6177814923806652)
Number clusters: 5, Silhouette score is 0.623432421353322)
Number clusters: 6, Silhouette score is 0.6454444674454114)
Number clusters: 7, Silhouette score is 0.5614716290406436)
Number clusters: 8, Silhouette score is 0.5585556926568208)
Number clusters: 9, Silhouette score is 0.565265125745878)
......

所以我会选择6个簇。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60078398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档