使用交叉验证提高准确性,不使用交叉验证则降低准确性

Accuracy increases using cross-validation and decreases without

我有一个关于交叉验证的问题:我正在使用朴素贝叶斯分类器按作者对博客文章进行分类。当我在没有 k 折交叉验证的情况下验证我的数据集时,我得到 0.6 的准确度分数,但是当我进行 k 折交叉验证时,每折呈现更高的准确度(大于 0.8)。

例如:

(splitting manually): Validation Set Size: 1452,Training Set Size: 13063, Accuracy: 0.6033057851239669

然后

(with k-fold): Fold 0 -> Training Set Size: 13063, Validation Set Size: 1452 Accuracy: 0.8039702233250621 (all folds are over 0.8)

等...

为什么会这样?

发生这种情况的原因有几个:

  1. 您的 "manual" 拆分不是随机的,您碰巧 select 更多难以预测的异常值。你如何进行拆分?

  2. k-fold CV中的k是什么?我不确定您所说的验证集大小是什么意思,您在 k 折 CV 中有一个折大小。没有验证集,您 运行 使用整个数据进行交叉验证。您确定 运行 正确地进行了 k 折交叉验证吗?

通常,人们会选择 k = 10 进行 k 折交叉验证。如果您 运行 它正确地使用了您的全部数据,您应该依赖它的结果而不是其他结果。