Python 使用MatplotLib可视化来自SKlearn Kmeans的稀疏输入

Python 使用MatplotLib可视化来自SKlearn Kmeans的稀疏输入,python,matplotlib,scikit-learn,k-means,sklearn-pandas,Python,Matplotlib,Scikit Learn,K Means,Sklearn Pandas,我可以看到质心,但不能看到点,因为它们来自稀疏矩阵。如何绘制此图?您可以使用.toarray()将稀疏矩阵转换为密集阵列: 请注意,将所有点投影到TF-IDF向量空间的前两个维度上可能会产生完全无用的图。最好通过PCA或t-SNE将数据管道化,以将维数减少到2。您可以使用.toarray()将稀疏矩阵转换为密集数组: 请注意,将所有点投影到TF-IDF向量空间的前两个维度上可能会产生完全无用的图。您最好通过PCA或t-SNE将数据管道化,以将维度减少到2。您可以共享用于复制问题的数据吗?@Moh

我可以看到质心,但不能看到点,因为它们来自稀疏矩阵。如何绘制此图?

您可以使用
.toarray()
将稀疏矩阵转换为密集阵列:


请注意,将所有点投影到TF-IDF向量空间的前两个维度上可能会产生完全无用的图。最好通过PCA或t-SNE将数据管道化,以将维数减少到2。

您可以使用
.toarray()
将稀疏矩阵转换为密集数组:


请注意,将所有点投影到TF-IDF向量空间的前两个维度上可能会产生完全无用的图。您最好通过PCA或t-SNE将数据管道化,以将维度减少到2。

您可以共享用于复制问题的数据吗?@MohammedKashif在这里,您可以共享用于复制问题的数据吗?@MohammedKashif在这里
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()
plt.scatter(cc_tfid[:, 0].toarray(), cc_tfid[:, 1].toarray())