Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用sklearn tf idf查找矢量化文本文档中的群集数_Python_Optimization_Scikit Learn_Cluster Analysis_Tf Idf - Fatal编程技术网

Python 使用sklearn tf idf查找矢量化文本文档中的群集数

Python 使用sklearn tf idf查找矢量化文本文档中的群集数,python,optimization,scikit-learn,cluster-analysis,tf-idf,Python,Optimization,Scikit Learn,Cluster Analysis,Tf Idf,我正在尝试使用sklearntf-idf和k-means对对话框进行集群。我使用轮廓分数计算了最佳簇数,但它几乎是线性增加的。那么,有没有其他的方法或者我做错了什么 代码: 根本问题要严重得多,没有简单的解决办法: K-均值对异常值非常敏感。但在典型的文本数据中,存在大量的异常值。大多数文件在某种程度上都是不寻常的。因此,“最佳”解决方案是将所有非重复点放在它们自己的簇中,即使用大得离谱的k。这不仅极大地增加了运行时间,而且还使得结果几乎毫无用处,除非您处于非常理想的场景中,比如20个新闻组 因

我正在尝试使用sklearn
tf-idf
k-means
对对话框进行集群。我使用轮廓分数计算了最佳簇数,但它几乎是线性增加的。那么,有没有其他的方法或者我做错了什么

代码:


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

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

因此,请使用主题建模或类似的算法,这些算法在该场景中工作得更好。但我没有任何其他集群的建议。如果没有无休止的参数选择,似乎没有一个能很好地发挥普遍作用

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)