[转载]
在NG的ML课程中和西瓜书中都有提到:最佳的数据分类状况是把数据集分为三部分,分别为:训练集(train set),验证集(validation set)和测试集(test set)。那么,验证集和测试集有什么区别呢?
实际上,二者的主要区别是:验证集用于进一步肯定模型中的超参数(例如正则项系数、ANN中隐含层的节点个数等)而测试集只是用于评估模型的精确度(即泛化能力)!
举个例子:假设创建一个BP神经网络,对于隐含层的节点数目,咱们并无很好的方法去肯定。此时,通常将节点数设定为某一具体的值,经过训练集训练出相应的参数后,再由交叉验证集去检测该模型的偏差;
而后再改变节点数,重复上述过程,直到交叉验证偏差最小。此时的节点数能够认为是最优节点数,即该节点数(这个参数)是经过交叉验证集获得的。而测试集是在肯定了全部参数以后,根据测试偏差来评判这个学
习模型的;也能够说是用来评估模型的泛化能力。因此,验证集主要主要是用于模型的调参。网络
【来自百度百科】
这种技术的一个要点是在获得最终模型前不能以任何方式分析或使用测试集。一个常见错误是在效果评估后从新调整模型而后再次训练评估。测试