unigrams & bigrams (tf-idf) 的准确性不如单纯的 unigrams (ff-idf)?

这是一个关于使用 ngrams 进行线性回归的问题,我们使用的是 Tf-IDF(词频-逆文档频率)。为此,我使用了 numpy 的稀疏矩阵和 sklearn 进行线性回归。

我有 53 个案例,使用 unigrams 时有超过 6000 个特征。预测是基于 LeaveOneOut 交叉验证进行的。

当我创建仅包含 unigram 得分的 tf-idf 稀疏矩阵时,预测结果略好于我创建包含 unigram+bigram 得分的 tf-idf 稀疏矩阵。矩阵中添加的列越多(三元组、四元组、五元组等的列),回归预测的准确性就越低。

这种情况常见吗?这是怎么可能的?我原本以为特征越多,结果会越好。


回答:

bigrams 表现不如 unigrams 的情况并不常见,但确实存在一些情况会发生。特别是,添加额外的特征可能会导致过拟合。Tf-idf 并不能缓解这种情况,因为更长的 n-grams 会更稀有,导致更高的 idf 值。

我不确定你试图预测的是什么类型的变量,我从未在文本上进行过回归分析,但这里有一些文献中的可比结果供你思考:

  • 在使用小型(但非-trivial)训练集进行随机文本生成时,7-grams 往往会几乎逐字重建输入文本,即导致完全过拟合,而三元组更有可能生成“新”的但仍然有些语法/可识别的文本(参见 Jurafsky & Martin;我不记得是哪一章,我手头没有书)。
  • 在使用核机器进行分类风格的 NLP 任务时,二次核通常比三次核表现更好,因为后者经常在训练集上过拟合。请注意,unigram+bigram 特征可以被认为是二次核特征空间的一个子集,而 {1,2,3}-grams 是三次核的特征空间的一部分。

具体发生什么取决于你的训练集;它可能只是太小了。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注