Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.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-如何在执行kmeans之后获取集群和集群名称_Python_Scikit Learn_K Means_Dimensionality Reduction - Fatal编程技术网

python/sklearn-如何在执行kmeans之后获取集群和集群名称

python/sklearn-如何在执行kmeans之后获取集群和集群名称,python,scikit-learn,k-means,dimensionality-reduction,Python,Scikit Learn,K Means,Dimensionality Reduction,所以我有下面的代码,在进行降维之后,我进行了kmeans聚类 # Create CountVectorizer vec = CountVectorizer(token_pattern=r'[a-z-]+', ngram_range=(1,1), min_df = 2, max_df = .8, stop_words=ENGLISH_STOP_WORDS) cv = vec.

所以我有下面的代码,在进行降维之后,我进行了kmeans聚类

# Create CountVectorizer
vec = CountVectorizer(token_pattern=r'[a-z-]+', 
                              ngram_range=(1,1), min_df = 2, max_df = .8,
                              stop_words=ENGLISH_STOP_WORDS)

cv = vec.fit_transform(X)
print('Dimensions: ', cv.shape) 

# Create LSA/TruncatedSVD with full dimensions
cv_lsa = TruncatedSVD(n_components=cv.shape[1]-1)
cv_lsa_data = cv_lsa.fit_transform(cv)

# Find dimensions with 80% variance explained
number = np.searchsorted(cv_lsa.explained_variance_ratio_.cumsum(), .8) + 1
print('Dimensions with 80% variance explained: ',number)

# Create LSA/TruncatedSVD with 80% variance explained
cv_lsa80 = TruncatedSVD(n_components=number)
cv_lsa_data80 = cv_lsa80.fit_transform(cv)

# Do Kmeans when k=4
kmean = KMeans(n_clusters=4)
clustered = km.fit(cv_lsa_data80)
现在我陷入了下一步该怎么办的困境。我想获得由kmeans对象标识的集群,并获得这些集群中最常用的10个词。比如:

第1组: 第一最常见的单词-计数 第二常见单词-计数

第2组: 第一最常见的单词-计数
第二个最常见的单词计数

如果您正在寻找聚类中心的重要性,则表示有一个形状可变的聚类中心[n_clusters,n_features]可以帮助您解决问题

公里。适合。。。 集群_中心=公里。集群_中心_ 第一个\u集群=集群\u中心[0]集群1
但作为补充,我不认为你能直接得到计数,因为你在数据集上用SVD执行了LSA,这意味着你不仅仅有原始计数。您必须按大小计算出kmeans中最重要的SVD元素,然后计算出哪些词构成了计数,以获得计数。您可以使用SVD类下的可变组件来实现这一点。

因此,听起来您已经使用该模型进行了构建、拟合和预测。现在我要做的是将[count_1]、[count_2]、[labels]三列添加到数据框cv中。只需执行cv['labels']=km,标签就很容易获得。predictcv_lsa_data80对于其他的是,当您可以执行逻辑,将短语中的所有单词按空格(如string=cv[i])拆分,然后使用相同的逻辑返回前两个频繁出现的单词。一旦你得到了所有这些变量,你就可以隔离“指南”。你走对了,谢谢!我弄明白了它的工作原理。我想我不知道下一步该怎么办