我有一个非常基本的问题。
1)建议在什么时候保留部分数据进行验证,什么时候不需要?例如,什么时候我们可以说80%的训练,10%的验证和10%的测试拆分更好,什么时候我们可以说简单的80%的培训和20%的测试拆分就足够了?
2)另外,使用K-Cross验证是否适用于简单的拆分(训练-测试)?
发布于 2020-03-19 02:01:03
如果我有一个有限大小的数据集,我发现拥有一个训练和验证集更有价值。无论如何,验证集本质上是一个测试集。这样做的原因是,您希望您的模型能够从它所训练的数据的高精度进行推断,也希望您的模型能够对它以前从未见过的数据具有高精度。验证集允许您确定是否是这种情况。我通常取至少10%的数据集,并将其作为验证集。随机选择验证数据以使其概率分布与训练集的概率分布相匹配,这一点很重要。接下来,我监视验证损失,并以最低的验证损失保存模型。我还使用了一个可调的学习率。Keras为此提供了两个有用的回调函数: ModelCheckpoint和ReduceLROnPlateau。文档是here。有了验证集,您可以在训练期间监视验证损失,并确定模型是否正在进行训练(训练准确性)以及是否正确地外推(验证损失)。随着模型精度的提高,平均验证损失应该会降低。如果验证损失开始随着高训练精度的增加而增加,则您的模型过度拟合,您可以采取补救措施,例如包括dropout层、正则化或降低模型复杂性。相关的文档是here和here。要了解我为什么使用可调学习率,请参阅堆栈溢出问题here的答案。
https://stackoverflow.com/questions/60742605
复制相似问题