我有一个关于交叉验证的问题:我使用朴素贝叶斯分类器来按作者对博客文章进行分类。当我没有使用k折交叉验证来验证我的数据集时,我得到的准确率是0.6,但当我进行k折交叉验证时,每个折叠的准确率都高得多(超过0.8)。
例如:
(手动分割):验证集大小:1452,训练集大小:13063,准确率:0.6033057851239669
然后
(使用k折):折叠0 -> 训练集大小:13063,验证集大小:1452,准确率:0.8039702233250621(所有折叠都超过0.8)
等等…
为什么会这样?
回答:
这可能发生的原因有几个:
-
你的“手动”分割不是随机的,你恰好选择了更多难以预测的异常值。你是如何进行这种分割的?
-
k折交叉验证中的
k
是什么?我不确定你所说的验证集大小是什么意思,在k折交叉验证中,你有一个折叠大小。没有验证集,你使用整个数据运行交叉验证。你确定你正确地运行了k折交叉验证吗?
通常,人们选择k = 10
来进行k折交叉验证。如果你正确地使用整个数据运行它,你应该依赖其结果而不是其他结果。