使用sklearn tfid查找矢量化文本文档中的簇数

2024-05-16 18:43:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用sklearntf-idfk-means对对话框进行集群。我使用剪影得分计算了最佳的集群数量,但它几乎是线性增长的。那么,有没有别的办法或者我做错了什么?在

代码:

tfidfV = TfidfVectorizer(max_features = 40000, ngram_range = ( 1, 3 ), sublinear_tf = True)
...
X = tfidfV.fit_transform(docm2)
...
for numb in nn:
    km = KMeans(n_clusters=numb)
    clabels = km.fit_predict(X)
    silhouette_avg = silhouette_score(X, clabels)
    print("For n_clusters = ", numb, "The average silhouette_score is: ", silhouette_avg)

Tags: 集群meansfit对话框avgscoreclusterssilhouette
1条回答
网友
1楼 · 发布于 2024-05-16 18:43:07

根本问题要严重得多,没有简单的解决办法:

K均值对异常值非常敏感。但在典型的文本数据中,存在大量的异常值。大多数文件在某种程度上都是不寻常的。因此,“最佳”解决方案是将所有非重复点放在自己的群集中,即使用一个荒谬的大k。这不仅大大增加了运行时间,而且还使结果几乎毫无用处,除非您处于一个非常理想的场景中,如20个新闻组。在

因此,使用主题建模或类似的算法,在这种情况下效果更好。但我对其他俱乐部没有任何建议。如果没有无休止的参数选择,似乎没有一种方法能很好地发挥作用。在

相关问题 更多 >