如何在散点图中可视化词袋

数据挖掘 机器学习 Python 数据挖掘 大数据 可视化
2022-02-24 09:14:02

我有一个包含大约 60000 个特征的词袋。每个特征代表一个维度。我想在缩小的 2D 空间中表示这个词袋。我该怎么做?

我在这里看到了一个例子,它看起来更像我想要的,但并不完全一样。在示例中,他们有 2 个变换,而我只有一个。因此,正如建议的那样,我不想使用管道。以下是我的代码,它永远不会显示任何错误消息:

#myList contents about 800000 words
bag_of_words = vec.fit_transform(myList)
X = bag_of_words.todense()
pca = PCA(n_components=2).fit(X)
data2D = pca.transform(X)
plt.scatter(data2D[:,0], data2D[:,1])
plt.show() 

我还没有找到更好的选择,现在看起来我做错了什么。

在散点图中可视化词袋的最佳方法是什么?

bag_of_words 看起来像这样:

(0, 548)    3
(0, 4000)   6
(0, 15346)  1
(0, 23299)  1
(0, 22931)  2
(0, 32817)  1
(0, 51733)  1
(0, 38308)  6
(0, 14784)  1
(0, 146873) 1
 ....
1个回答

我认为你应该看看 t-SNE,它是一种基于降维的可视化技术。维基百科摘录

t 分布随机邻域嵌入 (t-SNE) 是由 Geoffrey Hinton 和 Laurens van der Maaten 开发的用于降维的机器学习算法。它是一种非线性降维技术,特别适合将高维数据嵌入到二维或三维空间中,然后可以在散点图中可视化。具体来说,它通过二维或三维点对每个高维对象进行建模,类似的对象由附近的点建模,不相似的对象由远处的点建模。

在此处输入图像描述

本文描述了该技术在各种 word2vec 数据集上的 python 实现。