【问题标题】:Visualize Sparse Input from SKlearn Kmeans with MatplotLib使用 MatplotLib 可视化来自 SKlearn Kmeans 的稀疏输入
【发布时间】:2018-11-26 16:14:09
【问题描述】:
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()

我可以可视化质心,但不能可视化点,因为它们来自稀疏矩阵。请问这个怎么画?

【问题讨论】:

标签: python matplotlib scikit-learn k-means sklearn-pandas


【解决方案1】:

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

plt.scatter(cc_tfid[:, 0].toarray(), cc_tfid[:, 1].toarray())

请注意,将所有点投影到 TF-IDF 向量空间的前两个维度上可能会导致非常无用的绘图。您最好通过 PCA 或 t-SNE 管道传输数据以将维数降低到 2。

【讨论】:

    猜你喜欢
    • 2017-10-05
    • 2019-04-08
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    • 2016-09-19
    • 2019-07-04
    相关资源
    最近更新 更多