【发布时间】:2023-04-08 16:05:02
【问题描述】:
我使用 sk-learn.CountVectorizer() 创建向量矩阵,发现它有 57% 被 0 填充。在某些在线案例中,他们的稀疏矩阵只有 30% 被零填充。我想知道稀疏程度的影响。在稀疏矩阵中具有更少的零是更好还是更差或没有区别?对于这个观察,我们可以给出什么 cmet?
【问题讨论】:
标签: scikit-learn nlp countvectorizer
我使用 sk-learn.CountVectorizer() 创建向量矩阵,发现它有 57% 被 0 填充。在某些在线案例中,他们的稀疏矩阵只有 30% 被零填充。我想知道稀疏程度的影响。在稀疏矩阵中具有更少的零是更好还是更差或没有区别?对于这个观察,我们可以给出什么 cmet?
【问题讨论】:
标签: scikit-learn nlp countvectorizer
事实上,30% 甚至 57% 的零不意味着高度稀疏。因此,在您的情况下,忽略稀疏事实并将您的矩阵视为密集矩阵是足够安全的。
真正的高稀疏性类似于 99.99% 的零。它发生在推荐系统等问题中,当有数千甚至数百万个项目时,每个用户只与其中几个进行交互。另一种情况是当我们有非常短的文本(例如推文或对话轮次)和非常大的词汇量(甚至可能是多语言词汇)时。
如果特征矩阵的稀疏度真的很高,则意味着:
scipy 的稀疏矩阵的算法。一般来说,表示文档的最佳方式取决于您要解决的最终问题。对于某些问题(例如具有大型训练集的文本分类),高维稀疏表示可能是最佳的;对于其他人(例如,小文本的相似性或带有小标签训练集的文本分类),低维密集表示会更好。
【讨论】: