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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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