使用验证集与交叉验证方法结合使用是否合理?

我想使用Weka训练一个多层感知器,样本量约为200个,属性有6个。我考虑将数据集分为训练集和测试集,并在训练集中指定一定百分比作为验证集。但随后我考虑使用折叠交叉验证,以便更好地利用我的样本集。

我的问题是:在进行交叉验证时,指定验证集是否有意义?

考虑到样本量的大小,您能为这两种方法建议一些具体的数值吗?(例如,训练集占2/3,测试集占1/3,验证集占20%…而对于交叉验证:使用10折、2折,还是留一法(LOOCV)?)

提前感谢您!


回答:

你的问题听起来像是你对交叉验证还不太熟悉。就像你注意到的,有一个参数用于设置运行的折数。对于简单的交叉验证,这个参数定义了从原始数据集中创建的子集数量。假设这个参数为k。你的原始数据集被分成k个大小相等的子集。然后在每次运行中,训练在k-1个子集上进行,验证则在剩余的第k个子集上进行。接着使用k个子集中的另一个k-1子集排列进行训练,依此类推。因此,你会运行k次这样的过程。

对于你的数据集大小,k=10听起来不错,但基本上只要你考虑所有结果,而不是只选择最佳结果,任何数值都值得测试。

对于非常简单的评估,你只需使用2/3作为训练集,而1/3的“测试集”实际上是你的验证集。不过,还有更复杂的方法,这些方法使用测试集作为终止标准,并使用另一个验证集作为最终评估(因为你的结果也可能对测试集过拟合,因为它定义了终止标准)。对于这种方法,显然需要以不同的方式分割数据集(例如,2/3用于训练,3/12用于测试,1/12用于验证)。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注