【问题标题】:Is separate validation and test set needed when training SVM?训练 SVM 时是否需要单独的验证和测试集?
【发布时间】:2015-02-28 11:31:02
【问题描述】:

给定一组从训练数据集中提取的用于训练 SVM 的特征。 SVM 参数(例如 c、gamma)是使用 k-folds 交叉验证来选择的,例如训练数据集分为 5 份,其中一份作为验证集。折叠旋转完成,平均精度用于选择最佳参数。
那么我应该有另一组(测试集)并报告(如论文发表)结果吗?我的理解是,由于验证集是用来选择参数的,所以需要测试集。
在机器学习中,直到我们确定分类器后才能看到测试集(例如,在比赛中,测试集是未知的,我们仅根据训练集提交最终分类器)。

【问题讨论】:

    标签: svm


    【解决方案1】:

    常见的方法是,在交叉验证阶段之后,您需要进一步调整参数,因此需要验证集来控制每个模型的质量。

    如果您认为模型无法在验证集上显着改进而没有过度拟合的风险,那么您可以在测试集上使用您的模型来报告结果。

    编辑:

    由于您专门询问 k 折交叉验证,该技术隐式分离模型以测试结果模型,因此不需要额外的测试步骤。

    来自维基百科文章:

    "在k个子样本中,保留单个子样本作为验证数据用于测试模型,剩余的k-1个子样本作为训练数据" Wikipedia

    【讨论】:

    • 我遇到过很多论文,其中报告了 k 折交叉验证的平均结果,没有任何测试集结果,即。您提到的最后一步(在测试集上使用模型)未执行。
    • @ng0323 抱歉,我第一次阅读您的问题时没有阅读 k-fold。 k-fold 交叉验证实际上分离了其中一个子集来执行我所描述的操作,因此它们实际上是隐式执行的,不需要额外的测试步骤。
    猜你喜欢
    • 2014-03-09
    • 2018-08-10
    • 2020-04-26
    • 2020-06-16
    • 2021-01-20
    • 1970-01-01
    • 2012-06-04
    • 2013-10-21
    • 1970-01-01
    相关资源
    最近更新 更多