精度分数随着折叠次数的增加而增加是否意味着模型会随着更多的数据而改进?

数据挖掘 分类 nlp 交叉验证 评估
2021-10-11 07:06:14

我一直在研究一个非常简单的文本分类模块(tfidf + Random Forest)。我的经理坚持使用简单的 .7/.3 拆分,而不是进行交叉验证,然后坚持将基于 70% 数据训练的模型投入生产(而不是对整个事物进行训练的模型)。她的理由是该模型将更加“可预测”,并且我们从添加剩余的 30% 中获得的任何收益都可以忽略不计。

出于好奇,我使用交叉验证进行了一些测试。首先是 3 倍,然后逐渐增加到 10 倍。随着倍数的增加,模型的精度会提高(首先非常强烈:精度从 3 倍增加到 5 倍,精度提高了 3 个点,然后每倍的收益变得更加微不足道,但是达到 10 倍时仍然加起来 5 点提升)。交叉验证分数之间的差异总是非常低。

我是否可以假设这可以解释为意味着模型很可能会受益于在整个数据集上而不是仅在 70% 上的训练?

我知道在训练数据上可能存在过度拟合的风险,但是 a)我真的不知道仅对 70% 的数据进行训练会如何显着降低风险,b)这些是非常正式的、标准化的沟通,而且是看不见的数据不太可能与训练数据集有显着差异。

2个回答

它可能表明也可能不表明更多数据会有所帮助。

查看模型性能是否随着更多数据而提高的正确方法是创建学习曲线。通过交叉验证在一小部分数据上训练模型,然后不断增加使用的数据量。这不仅仅是减少/增加折叠次数。它实际上是将自己限制在少量数据中进行 10 倍交叉验证并增加它,评估每次增加时的性能。这里有更多关于学习曲线的信息

不,因为正如你提到的,它可能导致过度拟合。另一个问题应该是重新采样错误。您选择的折叠和为该训练周期选择的数据可能会产生与另一个周期完全不同的结果。