我正在使用简单的词袋模型和线性 SVM 分类器进行文本分类以从 Wikipedia 评论中识别“攻击”。由于班级不平衡,我使用 F1 分数作为我的错误度量。我想知道我在训练数据中拥有的标记是否还应该包含仅存在于测试数据中的单词,或者没关系?我的印象是这无关紧要,因为这些特征的计数在训练集中无论如何都是零。这应该使它们在训练时与模型无关。显然,这也是 SO 上的一些人所说的(虽然它没有找到任何明确的答案)。
为了测试这一点,我决定以两种方式训练我的模型并查看差异:一次只包含训练数据中的特征,另一次包含包含测试数据的特征。CV 的 N 倍数设置为 10。我得到了非常相似的 CV 错误,但是当我为测试数据生成预测时,包含测试数据特征的模型的 F1 分数高出 0.06 - 0.64 对 0.58。因为这是一个 Kaggle 作业,所以我看不到测试集的真实标签。我倾向于相信,如此大的差异不能只是随机的。似乎包含测试数据中的所有特征确实改善了我的模型,但这怎么可能呢?谁能给我一个解释?