【机器学习】机器学习中训练集、验证集和测试集的划分及交叉验证

通常,在训练有监督的机器学习模型的时候,会将数据划分为训练集、验证集和测试集,划分比例一般为6:2:2。对原始数据进行三个集合的划分,是为了能够选出效果最好的,泛化能力最佳的模型,验证集并不是必须的。

一个形象的比喻
训练集——课本,学生通过课本里的内容来掌握知识
验证集——作业,通过作业可以知道不同学生学习情况、进步的速度快慢
测试集——考试,考题平常没有见过,考察学生举一反三的能力

训练集(Training set)

作用:用来拟合模型,通过设置分类器的参数,训练分类模型。后续结合验证集作用时,会选出同一参数的不同取值,拟合出多个分类器。

验证集(Cross Validation set)

作用:当通过训练集训练出多个模型后,为了能找出效果最佳的模型,使用各个模型对验证集数据进行检测,并记录模型准确率。选出效果最佳的模型所对应的参数,即用来调整模型参数。

测试集(Test set)

作用:通过训练集和验证集得出最优模型后,使用测试集进行模型预测。用来衡量该最优模型的性能和分类能力。即可以把测试集当做从来不存在的数据集,当已经确定模型参数后,使用测试集进行模型性能评价。

对原始数据进行三个数据集的划分,也是为了防止模型过拟合。当使用了所有的原始数据去训练模型,得到的结果很可能是该模型最大程度地拟合了原始数据,即该模型是为了拟合所有原始数据而存在。当新的样本出现,再使用该模型进行预测,效果可能还不如只使用一部分数据训练的模型。

交叉验证

  • 目的 交叉验证的作用就是尝试利用不同的训练集/验证集划分来对模型做多组不同的训练/验证,来应对单独测试结果过于片面以及训练数据不足的问题
  • 十折交叉验证 将数据集随机划分10个大小相似的互斥子集,然后每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集,可以获得k组训练/测试,最终返回的是这k个测试结果的均值。
  • 交叉验证的目的是为了选择不同的模型类型,而不是选择具体模型的具体参数,模型类型选择完成后(即k折交叉验证),最终的具体参数由全部的训练数据重新训练得到。
    在这里插入图片描述

数据集划分与k折交叉验证的区别

在这里插入图片描述

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页