from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.cluster import KMeans
cc_tfid = TfidfVectorizer().fit_transform(cc_corpus)
cc_km = KMeans(n_clusters = 3, init = 'k-means++', max_iter = 99, n_init = 4, verbose = False )
cc_km.fit(cc_tfid)
plt.scatter(cc_tfid[:, 0], cc_tfid[:, 1])
centroids = cc_km.cluster_centers_
plt.scatter(centroids[:, 0], centroids[:, 1], c='red', s=200, alpha=0.5)
plt.show()
我可以想象质心而不是点,因为它们来自稀疏矩阵。我该如何策划这个?
答案 0 :(得分:3)
您可以使用.toarray()
:
plt.scatter(cc_tfid[:, 0].toarray(), cc_tfid[:, 1].toarray())
请注意,在TF-IDF向量空间的前两个维度上投影所有点可能会导致相当无用的图。最好通过PCA或t-SNE来管理数据,以将维数降低到2。