如何理解Kmean的集群?

时间:2016-12-13 17:46:19

标签: scikit-learn k-means

您好我正在使用Kmeans构建主题分类器,我的想法是从不同的用户那里获取几个Facebook评论以获得多个文档。

我的文件清单如下:

list=["comment1","comment2",...,"commentN"]

然后我使用tfidf对每个注释进行矢量化并将其分配给特定的群集, 我的程序输出如下:

tfidf = tfidf_vectorizer.fit_transform(list)
tf = tf_vectorizer.fit_transform(list)    
print("size of tf",tf.shape)
print("size of tfidf",tfidf.shape)   
#Creating clusters from data
kmeans = KMeans(n_clusters=8, random_state=0).fit(tf)   
print("printing labels",kmeans.labels_)    
#Printing the number of clusters 
print("Number of clusters",set(kmeans.labels_))
print("dimensions of matrix labels",(kmeans.labels_).shape)
#Predicting new labels
y_pred = kmeans.predict(tf)
print("dimensions of predict matrix",y_pred.shape)

我的输出如下:

size of tf (202450, 2000)
size of tfidf (202450, 2000)
printing labels [1 1 1 ..., 1 1 1]
Number of clusters {0, 1, 2, 3, 4, 5, 6, 7}
dimensions of matrix labels (202450,)
dimensions of predict matrix (202450,)
C:\Program Files\Anaconda3\lib\site-packages\sklearn\utils\validation.py:420: DataConversionWarning: Data with input dtype int64 was converted to float64.
  warnings.warn(msg, DataConversionWarning)

现在问题在于我想找到一种方法来理解这个集群我的意思是0级是关于体育的,1级是关于政治的,所以我想感谢任何推荐来理解这些集群,或至少找到一种方法来获取属于特定集群的所有通知,然后解释此结果,感谢您的支持。

1 个答案:

答案 0 :(得分:1)

有多种方法

最简单的方法是获取每个群集的质心,这是对群集中使用的大多数词语的一个很好的总结。

第二个方法是获取分配给每个集群的元素的tf-idf的子矩阵, 之后,您可以在子矩阵上使用ACP来提取因子,并了解更多每个群集的组成。

抱歉,我不使用sckit-learn,所以我无法通过代码帮助你

跳跃将有助于