训练集,测试集和验证集

来源:互联网 发布:营销型网站源码 编辑:程序博客网 时间:2024/05/01 03:30
     在机器学习和模式识别等领域中,一般需要将样本分成独立的三部分训练集(train set),验证集(validation set ) 和测试集(test set)。其中训练集用来估计模型,验证集用来确定网络结构或者控制模型复杂程度的参数,而测试集则检验最终选择最优的模型的性能如何。一个典型的划分是训练集占总样本的50%,而其它各占25%,三部分都是从样本中随机抽取。
验证集和测试集的区别在于:
       两者的主要区别是:验证集用于进一步确定模型中的超参数(例如正则项系数、ANN中隐含层的节点个数等)而测试集只是用于评估模型的精确度(即泛化能力)!
      
     举个例子:假设建立一个BP神经网络,对于隐含层的节点数目,我们并没有很好的方法去确定。此时,一般将节点数设定为某一具

体的值,通过训练集训练出相应的参数后,再由交叉验证集去检测该模型的误差。
     然后再改变节点数,重复上述过程,直到交叉验证误差最小。此时的节点数可以认为是最优节点数,即该节点数(这个参数)是通过交叉验证集得到的。而测试集是在确定了所有参数之后,根据测试误差来评判这个学习模型的;也可以说是用来评估模型的泛化能力。所以验证集主要主要是用于模型的调参。
      测试数据集不同,虽然同是模型训练过程中留出的样本集,但它是用于评估最终模型的性能,帮助对比多个最终模型并做出选择。

阅读全文
0 0
原创粉丝点击