machine-learning - 使用交叉验证可以提高准确性,如果不使用交叉验证则准确性会降低

标签 machine-learning naivebayes

我有一个关于交叉验证的问题:我正在使用朴素贝叶斯分类器按作者对博客文章进行分类。当我在没有 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. 您的“手动”分割不是随机的,您碰巧选择了更多难以预测的异常值。您这次拆分进展如何?

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

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

关于machine-learning - 使用交叉验证可以提高准确性,如果不使用交叉验证则准确性会降低,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28619979/

相关文章:

machine-learning - 了解嵌入向量维度

c# - 示例 Accord.NET 朴素贝叶斯

python - Python 中朴素贝叶斯的训练准确性

class - Scikit-learn 默认类

Tensorflow 成本等于无

algorithm - Q 学习的收敛标准

java - 在 Java 中使用朴素贝叶斯 (weka) 进行简单文本分类

python - 套索回归 : The continuous heavy step function

matlab - 如何使用 MATLAB 进行交叉验证测试?